3 回答

TA貢獻3593條經(jīng)驗 獲得超0個贊

TA貢獻2條經(jīng)驗 獲得超0個贊
個人見解:
問題一:你這個寫法,是js語言中創(chuàng)建對象中的工廠模式,你在函數(shù)體里面應該把obj1返回出來才行(return? ?obj1;),然后調(diào)用時var? xxx=a();用個變量接住它。
問題二:明確函數(shù)對象這個說法,F(xiàn)unction 和Function.prototype不是一回事,前者是個函數(shù),后者是個對象。只有函數(shù)(這個特殊的對象)才具有prototype這個屬性(指針),F(xiàn)unction.prototype不是個函數(shù),它是個普通對象不具有prototype屬性,所以調(diào)用后會出現(xiàn)undefined。

TA貢獻11條經(jīng)驗 獲得超2個贊
你想用構(gòu)造函數(shù)的方式寫對象,但是不是這樣寫的吧
function a(){ ?
? ? this.obj1 = {name:1} ?;
}

TA貢獻100條經(jīng)驗 獲得超24個贊
第一個問題函數(shù)內(nèi)可以寫成obj1={name:1} 或者 window.obj1={name:1} ,都可以成功污染全局作用域
第二個問題Function是一個構(gòu)造類,構(gòu)造函數(shù)才指向自身,應該是Function.prototype.constructor.prototype
另外引擎實現(xiàn)的東西并不屬于js了,應該是c++寫得,所以function就有能看的prototype是不成立的。比如Object.toString

TA貢獻11條經(jīng)驗 獲得超2個贊
添加回答
舉報