當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
JS经典面试题04-原型链Foo.getName
生活随笔
收集整理的這篇文章主要介紹了
JS经典面试题04-原型链Foo.getName
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.1-答案揭曉
1.2-原理解析
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title> </head><body><script>/*總結(jié):本題目覆蓋知識(shí)點(diǎn) 1. 變量不使用var聲明,默認(rèn)是全局變量。 沒有作用域限制2. this指向3. 靜態(tài)成員 與 實(shí)例成員4. 原型5. 預(yù)解析*//* 題干 *///1.聲明全局函數(shù)Foofunction Foo() {//聲明全局變量getName : 本質(zhì)給window添加getName方法getName = function () {console.log(1);};/* 沒有使用new : this指向window使用new : this指向new創(chuàng)建的空對(duì)象(實(shí)例化對(duì)象)*/return this;}//2.給Foo添加靜態(tài)成員 : getNameFoo.getName = function () {console.log(2);}//3.給Foo添加原型方法getNameFoo.prototype.getName = function () {console.log(3);}//4.聲明全局函數(shù)getNamevar getName = function () {console.log(4);};//5.聲明全局函數(shù)getName (被var覆蓋)function getName() {console.log(5);}/* 題目 *///1.調(diào)用Foo函數(shù)對(duì)象自己的方法Foo.getName();//2//2.調(diào)用全局函數(shù)getName();//4//3.調(diào)用Foo() 返回window 繼續(xù)調(diào)用window對(duì)象的getName方法Foo().getName();//1//4.調(diào)用全局函數(shù) getNamegetName();//1//5. new Foo.getName : 這里并沒有調(diào)用Foo,所以其實(shí)是調(diào)用Foo函數(shù)對(duì)象自己的getName//前面這個(gè)new是嚇唬你的new Foo.getName()//2//6. new Foo() :返回實(shí)例化對(duì)象 調(diào)用getName訪問原型中的方法 new Foo().getName();//3//7. 多出來的new是嚇唬你的,原理與6一致// 相當(dāng)于 new (new Foo.getName()) 與6中的this指向有區(qū)別new new Foo().getName();//3 </script> </body></html>總結(jié)
以上是生活随笔為你收集整理的JS经典面试题04-原型链Foo.getName的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS经典面试题03-引用类型连续赋值a.
- 下一篇: JS经典面试题05-变量连续声明var