関数とか、その呼び出し方のメモ

基本

コメントアウト

ひとかたまりのコードをコメントアウトする際、正規表現の記述とバッティングする可能性があるため
コメントアウトは、/**/よりも//を使う。

オブジェクトリテラル

var neko = { koe : { sono1 : 'にゃんにゃん', sono2 : 'にゃーん' }, kazu : 2, hi : '2017-02-18' };

オブジェクトの取り出し方

neko.hi

参照

var a = {},b = {},c = {}; //a,b,cはそれぞれ異なる空オブジェクトを参照する var a = b = c = {}; //a,b,cは同じ空オブジェクトを参照する>

グローバル領域の利用を減らす

var MYAPP = {};//ここにいろいろ保存しておく。

型を確認する

var a = 'aaaa'; typeof a;//"string" var a = {}; typeof a;//"object" var a = 1; typeof a;//"number"

関数

関数の作成

例) addという変数を定義し、2つの値を加算する関数を格納

var add = function(a,b){ return a + b; };

メソッド呼び出し

その関数がオブジェクトのプロパティだった場合の呼び出し方。この場合、この関数はメソッドと呼ばれる
メソッドとして呼び出された場合、そのメソッド内のthisには、そのオブジェクト が格納させる。
関数の使われ方で「.(ドット)」が使われた場合、メソッドとして呼び出されていることに注目したい

//myObjectを生成 //valueと関数incrementを持つ //関数incrementは引数を1つ持つことができる。なお、この引数は省略可能 //引数が数値であれば、デフォルトで1が加算される。 var myObject = { value: 0, increment: function(inc){ this.value += typeof inc === 'number' ? inc : 1;//☆ } } myObject.increment(); console.log(myObject.value);//1 myObject.increment(2); console.log(myObject.value);//3

関数呼び出し

関数がオブジェクトではない場合は、メソッドとしてではなく、関数として呼び出される。

var add = function(a,b){ return a + b; }; var sum = add(3,4); console.log(sum);//7

関数として呼び出す場合、thisは使いにくい。(普通、メソッドではなく関数の中のthisが参照するのは、グローバルオブジェクトであるため。)
なので、もし何かメソッド内で、上記のようなadd()のような関数を使う際は、thisではなく、that という変数をつかうのが無難

var neko = {}; neko.value = 0; neko.double = function(){ var that = this; var helper = function(){ that.value = add(that.value, that.value); }; helper(); }; console.log(neko.value); neko.value = neko.value + 1; console.log(neko.value);//1 neko.double(); console.log(neko.value);//2 neko.double(); console.log(neko.value);//4 neko.double(); console.log(neko.value);//8

コンストラクタ呼び出し

new演算子をつけて呼び出すことを前提とした関数は、コンストラクタよ呼ばれる。
コンストラクタは、頭文字が大文字であることが慣例。

//Quoという名のコンストラクタ関数を生成 //これは statusというオブジェクトを持つ var Quo = function(string){ this.status = string; }; //get_statusというパブリックメソッドを、 //Queのすべてのインスタンスで使用可能にする Quo.prototype.get_status = function(){ return this.status; }; var myQuo = new Quo('OK'); console.log(myQuo.get_status());

しかし、コンストラクタ関数は、あまりおすすめできるものではないらしい。

apply呼び出し

var add = function(a,b){ return a + b; }; var Quo = function(string){ this.status = string; }; Quo.prototype.get_status = function(){ return this.status; }; var arry = [3,4]; var sum = add.apply(null, arry); console.log(sum); var statusObject = { status : 'A-OK' }; var status = Quo.prototype.get_status.apply(statusObject); console.log(status);

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

同じカテゴリの前後の記事


  1. KATOON.NET
  2. TRASH
  3. 関数とか、その呼び出し方のメモ