一道短小精悍的JS小題目

2022-01-14 08:23:57 字數 1187 閱讀 9804

看到題目你是不是以為我在開車,沒錯,我就不承認,你能咋的,你瞅啥,別瞅我,瞅題

題目是這樣式的

結果是啥呀,這裡我就不買關子了,結果是undefined,相信基礎好一點的大佬們一眼就能看出來,像我這種就必須兩隻眼一起看,這裡我又想問一句了,大佬們閉著乙隻眼看**不累嗎

讓我們先簡單明瞭的來解釋一下上面的**

首先foo()實際上是由window呼叫的

由於普通函式this指向呼叫他的物件,所以foo中的this實際上指向的window

而此時又相當於是window呼叫了bar函式,所以bar裡面的this也是指向window

此時,實際上要輸出的是window.a,而在window這個全域性物件上並沒有a這個屬性,所以輸出了undefined

現在我們回到最開始的樣子,並在window物件上繫結乙個a屬性

結果輸出:我是window上的a屬性

這裡特別注意一點,可能有的同學會疑問為什麼是輸出undefined,而不是輸出not defined呢?

因為js訪問物件上未定義的屬性會返回undefined,而訪問未宣告的變數時則會丟擲not defined。要是你還想再深究原因的話,明人不說暗話,我目前的水平也究不動,感覺是和引擎內部的實現有關,有知道的老鐵們可以在我頭上拍三下,夜深人靜的時候我去你房裡我們深入研究一波

12月13日 一道有趣的小題目

在很久很久以前,曾經看過這麼一道題目 package com.tree.thread class singleton public static singleton getinstance public class test 對該題的輸出結果原本的猜測要麼是 0,0 要麼是 0,1 然後實際操作的結...

一道前端JS題目

做過很多前端筆試題,有些題看起來簡單,就是讀程式寫結果,但要麼做錯,要麼對答案不確定,這裡找到一道比較綜合的題目 function foo 1 函式內定義了乙個函式變數 return this foo.getname function 2 建立了foo的靜態屬性 foo.prototype.getn...

原型的乙個小題目

題目要求 建立乙個shape物件,該物件有乙個type屬性和gettype 方法 定義乙個原型為shape的 建構函式,用 建立的物件應有三個物件屬性 a b c,分別用於表示三角形的三條邊 在物件原型中新增乙個名為getperimeter 的新方法,用下面的 來進行測試 var t new 1,2...