经典面试题(10):关于this指向,以下代码将输出什么?
看下面的代碼,輸出的結(jié)果是什么?并解釋你的答案。
var person = {_name: 'I am John',sayHello: function (){return this._name;} };
var sayHello = person.sayHello;
console.log(sayHello());
console.log(person.sayHello());
代碼運(yùn)行的結(jié)果是:
undefinedI am John
第二個(gè)打印?person.sayHello()?的結(jié)果是:?I am John??這個(gè)好理解。
為什么第一次打印出來(lái)的結(jié)果是?undefined?呢?明明是直接賦值過(guò)去的呀。這里涉及到的知識(shí)點(diǎn)就是:this的指向。
在執(zhí)行?sayHello()?的時(shí)候,當(dāng)訪問(wèn)到?this._name?時(shí),此時(shí)的this已經(jīng)不再是?person??對(duì)象,而是全局窗口對(duì)象,也就是?widnow?對(duì)象。
與此同時(shí),?widnow?對(duì)象并不存在?_name??屬性,所以返回的是?undefined?。
所以在筆試面試看到一些代碼題目的時(shí)候,如果你看到了?this?,就要小心謹(jǐn)慎,很可能這里就是面試官要考(keng)察(ni)的地方。?
熱門文章
原創(chuàng)教程原創(chuàng)教程:
附加習(xí)題:
職場(chǎng)焦慮:
感到迷茫:
培訓(xùn)出身:
培訓(xùn)費(fèi)用:
搞笑黑話:
職業(yè)自由:
職場(chǎng)形象:
合作推廣分割線
總結(jié)
以上是生活随笔為你收集整理的经典面试题(10):关于this指向,以下代码将输出什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 科大星云诗社动态20210208
- 下一篇: 科大星云诗社动态20210207