this關鍵字到底指向誰?

2021-09-16 18:40:26 字數 1180 閱讀 8020

先做乙個小測試,如果全部答對了,恭喜你不用往下看了。

第一題:zhangsan wangwu zhangsan

第二題:zhangsan zhangsan

第三題:我叫zhangsan 我叫zhangsan

第四題:zhangsan zhangsan zhangsan lisi wangwu

(往下看,下面有詳細解析哦)

指向呼叫函式的物件

無物件呼叫函式/匿名函式自呼叫(this指向window)

通過new產生的物件

function.call([thisobj[,arg1[, arg2[, [,.argn]]]]])

注意:1. 呼叫function函式,但是函式內的this指向thisobj(更改物件內部指標)

2. 如果thisobj沒有傳參,則預設為全域性物件

聯絡:功能一樣,第乙個引數都是thisobj

區別:傳遞的引數如果比較多

call()的實參就是一一列出

function demo()

demo(); // 123

demo.call(); //123

// call()引數單獨再call中羅列

function demo(m, n, a, b)

demo(1, 5, 3, 4); // 13

demo.call(null, 1, 5, 3, 4); // 13

this的第四個用法例項

var username = 'zhangsan';

function demo()

var obj1 = ;

var obj2 = ;

demo(); // zhangsan

demo(obj1); //zhangsan

demo(obj2); //zhangsan

demo.call(obj1); // lisi

JS中this關鍵字的指向

js中感覺this的指向是多變的。這裡進行一下總結 個人感覺this的指向大致分為以下幾類 1 作為普通函式的呼叫。例如 var x 1 function test test 這裡列印1 一般這種情況我個人為了加深理解都會做一步變形。把所有的函式呼叫加上字首比如test 就是window.test ...

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...