var tools = {};
tools.triangle = function() {
var originX = 0;
var originY = 0;
}
var tools = {};
tools.triangle = function() {
this.originX = 0;
this.originY = 0;
}
これら 2 つのコード ブロックに違いはありますか? これが以前に尋ねられた場合は申し訳ありません。
var tools = {};
tools.triangle = function() {
var originX = 0;
var originY = 0;
}
var tools = {};
tools.triangle = function() {
this.originX = 0;
this.originY = 0;
}
これら 2 つのコード ブロックに違いはありますか? これが以前に尋ねられた場合は申し訳ありません。
var内にローカル変数を作成しますtools.triangle。変数originXとoriginYは、 の外部では操作できませんtools.triangle。this現在扱っているオブジェクトへのポインタです。2 番目の例を使用して、オブジェクトにプロパティを与えることができますnew tools.triangle();。newを使用せずに使用する場合はtools.triangle();、thisオブジェクトであるグローバル オブジェクトを指しwindowます。this関数メソッドを使用して、次のようにポイントするcall();オブジェクトを変更できますapply();。
var myObj = {};
tools.triangle.call( myObj );
// "this" in tools.triangle now points to myObj
// myObj now has the properties originX and originY
thisは任意のオブジェクトを参照でき、未定義またはnullES5 strict モードであることも知っておくことが重要です。
詳細については、こちらをご覧ください。
最初の例では、 X と Y の両方が variable に保存されたクロージャへのローカル変数として存在しますtriangle。
tools.triangle2 番目の例では、 を使用しているため、X と Y がオブジェクトの変数として存在しますthis。