關於this的例題

2021-09-13 17:46:42 字數 1247 閱讀 1009

var number = 5;

var obj =

})()

}var myfun = obj.fn;

myfun.call(null);

obj.fn();

console.log(window.number);

結果為:109

32720

原因解析:在定義obj的時候呀,fn()就執行了一次,此時他的this為window

fn: (function () 

})()

執行var myfun = obj.fn時,便是將fn()的返回函式賦值給myfun。

執行myfun.call(null)時,傳遞的引數是null,表明是預設繫結。(this還是指向window)

return function ()
執行obj.fn()時,this指向的是obj

return function ()
最後執行console.log(window.number)

console.log(window.number);                  //20
例子借鑑前端小姐姐

var length = 10;

function fn()

var obj =

};obj.method(fn, 1);//輸出是什麼?

執行結果

?嗯嗯嗯???結果怎麼會是2,?2從哪來的????

當執行obj.method(fn, 1)方法的時候,method屬性的arguments是個類陣列物件,具體可以看下圖。

此時執行arguments.fn()this就指向的是arguments物件,所以this.length就是2,是不是隱藏的很深諾~?

關於指標的經典例題

1.用new和delete的動態記憶體分配方法,實現對任意數目的整數進行排序。view code 1 include 2 include 3 4void sortarray int int 5 6int main 723 24 輸入擬排序的整數 25for i 0 i num i 26 cin a ...

OS 關於程式併發執行的例題

1 作圖如下 2 cpu有空閒等待,在計算完程式b後的50ms內,即100ms到150ms之間處於空閒等待。由於ab程式都在不同的裝置上進行暫時不需要用到cpu,所以會有空閒等待。3 程式a無等待現象,程式b在執行時有等待現象,在b程式使用完輸入機後等待cpu將a程式計算完,即在 180ms 到 2...

關於佇列(還有廣度優先搜尋的例題)

本博文的目錄 1 佇列 2 佇列的例題 3 廣度優先搜尋的例題 1 佇列 佇列是什麼?佇列是一種特殊的線性表,與棧不同,這種線性表只允許在表的前端 我們稱為front或head 進行刪除操作,在表的後端 我們稱作rear或tail 進行插入操作。所以又叫f first i in f first o ...