360一道關於this的題目

2021-08-14 19:50:31 字數 783 閱讀 7105

原題目是這樣子的:

window.val = 1;

var obj =

};// 說出下面的輸出結果

obj.dbl();

var func = obj.dbl;

func();

this呢其實就是這樣,分清楚呼叫就好了。。。

obj中的沒有指定呼叫。預設從函式中查詢。如果沒有則往上一級查詢。。。所以  上面的式子可以寫成這樣

window.val = 1;

window.val = 1;

var obj =

};// 說出下面的輸出結果

obj.dbl();

var func = obj.dbl;

func();

這樣一來答案就清晰明了了

obj.dbl();這個呼叫者是obj。。所以其中的this指向obj物件     // 2 4

var func = obj.dbl;

func();    

這個呢是全域性window呼叫的func()所以this指向window   

不相信的話可以在這裡console.log(this)。。。就知道每次呼叫的是誰。。。this到底是指向誰的 

因為window.val 第一次運算結果是2

所以最後的結果就是   8     8

一道關於HashSet的題目

試寫出下列 的執行結果 hashset set newhashset person p1 newperson 1001 aa person p2 newperson 1002 bb set.add p1 set.add p2 p1.name cc set.remove p1 system.out.p...

一道this的題目

請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...

關於多執行緒的一道題目

題目大意 有四個執行緒,每個執行緒輸出1,2,3,4,設計程式使得依次輸出 1111222233334444 求解思路 建立乙個物件o,當四個執行緒依次輸出1後,檢測已經輸出的次數count,如果輸出次數為1,2,3,那麼讓執行緒進入物件o的等待集,如果為4,那麼喚醒o中等待集中所有執行緒並將cou...