JavaScriptの関数(function
)はもらった引数を用いて処理を行うオブジェクトです。
関数の記述は「定義」と「実行」の2段階があります。
var hoge = function() { return 'HOGE'; } hoge();
|
🍣 無名関数(即時関数)について
無名関数(即時関数)を使うとスコープ範囲を限定できるのでグローバルで変数、関数の衝突を避けることができます。
var a = 'a';
(function() { var a = 'new a'; var b = 'b';
console.log(a); })();
console.info(a); console.info(b);
|
無名関数を利用したクラスの定義
無名関数を利用してクラス的なオブジェクトを定義できます。
(function() { function Hoge() { console.log(Constructor); } Hoge.prototype.instanceMethod = function() { console.log(Instance Method); } Hoge.classMethod = function() { console.log(Class(Static) Method); } window.Hoge = Hoge; })();
var hoge = new Hoge(); hoge.instanceMethod(); Hoge.classMethod();
|
プライベートメソッドの模倣
クロージャを利用してプライベートメソッド、変数を模倣するサンプルです。
var generateCounter = function() { var privateCounter = 0;
function changeBy(val) { privateCounter += val; }
return { increase: function() { changeBy(1); }, decrease: function() { changeBy(-1); }, value: function() { return privateCounter; } }; };
var counter1 = generateCounter(); var counter2 = generateCounter(); console.log(counter1.value()); counter1.increase(); counter1.increase(); console.log(counter1.value()); counter1.decrease(); console.log(counter1.value()); console.log(counter2.value());
|
😼 functionが存在するかチェックする
JavaScriptでfunction(関数)が存在するかをチェックする場合は次のようなコードとなります。
if ( typeof sample == "function") { sample(); }
|
😎 補足:importで別名を設定
インポートしたメソッドに名前空間を設定できます。
import * as myModule from "my-module";
myModule.hoge();
|
🗻 参考リンク
🖥 VULTRおすすめ
「VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。
最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!