JS中this的四種用法

2021-09-23 23:50:05 字數 798 閱讀 7255

一、一般函式呼叫

以下**,屬於全域性性呼叫,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...