一、一般函式呼叫
以下**,屬於全域性性呼叫,this代表全域性物件。
var a = 1;
function foo()
foo(); // 1
二、作為物件方法呼叫
以下**,this指向上層物件即obj。
function foo()
var obj = {};
obj.x = 1;
obj.foo = foo;
obj.foo(); // 1
三、作為構造函式呼叫
所謂建構函式,是指通過這個函式,可以生成乙個新物件。
var x = 5;
function foo()
var obj = new foo();
console.log(obj.x); // 1
console.log(x); // 5
obj.x = 1 表明foo函式內的this不是全域性物件,this指向新物件obj,全域性變數x的值不變。
具體區別:
var x = 0;
function foo()
var obj = {};
obj.x = 1;
obj.foo = foo;
obj.foo(); // 1
obj.foo(); // 1
JS中this的四種用法
1.在一般函式方法中使用 this 指代全域性物件 functiontest test 1 2.作為物件方法呼叫,this 指代上級物件 function test var o o.x 1 o.m test o.m 1 3.作為構造函式呼叫,this 指代new 出的物件 function test...
JS中this的四種用法
1.在一般函式方法中使用 this 指代全域性物件 function test test 1 2.作為物件方法呼叫,this 指代上級物件 function test var o o.x 1 o.m test o.m 1 3.作為構造函式呼叫,this 指代new 出的物件 function tes...
JS中this的四種用法
1.在一般函式方法中使用 this 指代全域性物件12 345functiontest test 1 2.作為物件方法呼叫,this 指代上級物件 this指向其呼叫那一刻的呼叫者,即母體物件,不管被呼叫函式被呼叫時屬於方法還是函式 function test var o o.x 1 o.m tes...