亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js對象,類與原型鏈問題

js對象,類與原型鏈問題

呼如林 2019-02-24 14:55:53
function Foo() {    getName = function () { console.log (1); };    return this;}Foo.getName = function () { console.log (2);};Foo.prototype.getName = function () { console.log (3);};var getName = function () { console.log (4);};function getName() { console.log (5);}//請寫出以下輸出結果:Foo.getName();     //2, 函數的靜態方法,直接調用相關函數就可以了。getName();    //4, 變量函數定義在調用之前,成功完成初始化,覆蓋函數聲明方式定義的同名函數Foo().getName();   //1, 這里 Foo()返回的 this 是 window,在 Foo調用時,對全局的變量型函數 getName 重新定義了,所以得到1。getName();   //1, 上一句改變了全局的 getName 函數為 cosnole.log(1)new Foo.getName();   //2,無參數 new 運算比 . 運算低,所以先運行 Foo.getName,得到2new Foo().getName();   //3,有參數 new 運算和 . 運算同一等級,故從左到右,先運算 new Foo() 得到一個匿名對象,在該對象上調用 getName 函數得到3new new Foo().getName();    //3,同上,先得到匿名對象,然后將該對象的方法 getName 當做構造函數來調用,得到一個新對象,并輸出3; 不理解第三個Foo().getName();的解釋,為什么下面這兩句話沒更改Foo()的getName的值呢?后面幾個new的求解也不是很明白,什么是有參數無參數呢Foo.getName = function () { console.log (2);};Foo.prototype.getName = function () { console.log (3);};
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 474 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號