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

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于JS里的對象。創建函數對象和函數對象屬性的調用。

老師,各位大蝦,我想問個問題 就是 我在使用控制臺的時候發現,首先聲明一個 function abc(){this.ddd=function{alert("1111")}};然后我前后分別定義var a=abc,a=abc(),a=new abc();都是返回undefined;再輸入a的時候 ,分別出現 function abc(){內容省去};undefined;最后一個返回了a{ddd:function} ?這三者有什么區別嗎? ?調用a.ddd的時候只有 a=new abc()這一個有返回一個函數,其他的都是undefined。 求解釋。。。這三者分別是什么意思。。

正在回答

2 回答

function?abc(){
??this.ddd?=?function(){
??????alert("111");
??};
??return?true;
};
console.log(abc());
var?a?=?abc;
console.log(a?===?abc);
a?=?abc();
console.log(a);
var?a?=?new?abc();
console.log(a);


2 回復 有任何疑惑可以回復我~
#1

ZeroYan 提問者

非常感謝!
2015-12-15 回復 有任何疑惑可以回復我~

首先,function abc(){...} 創建了一個名為abc的函數,此時abc中保存的是函數abc()的地址,所以var a = abc;會將函數abc的地址傳給a。這個時候a不應該是undefined,a應該和abc等價,相當于都指向函數abc()。

var a = abc

console.log(a === abc) // true

第二句a = abc(), 相當于將函數abc的執行結果保存到a中,而函數abc是沒有返回值的,所以a = undefined。你可以在function abc(){... return true;} 加返回值。這個時候 a = abc(); console.log(a)?? // true

第三句就很好理解了,var a = new abc(),將對象abc的引用賦值給a 。所以這時候a有方法ddd。



1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于JS里的對象。創建函數對象和函數對象屬性的調用。

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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