関数とか、その呼び出し方のメモ
基本
コメントアウト
ひとかたまりのコードをコメントアウトする際、正規表現の記述とバッティングする可能性があるため
コメントアウトは、/**/よりも//を使う。
オブジェクトリテラル
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
- 次の投稿:mac おすすめマウス Qtuo 2.4G
TRASHの最新記事
- KATOON.NET
- TRASH
- 関数とか、その呼び出し方のメモ