驗證javascript中Object和Function的關系的三段簡單代碼_javascript技巧
來源:懂視網
責編:小采
時間:2020-11-27 20:53:53
驗證javascript中Object和Function的關系的三段簡單代碼_javascript技巧
驗證javascript中Object和Function的關系的三段簡單代碼_javascript技巧:話說在樓豬理解和實踐能力尚欠火候的時候,在這篇里曾經照搬了李戰老師不少東西寫在自己的博客里作為知識儲備。這一次還是不能免俗。在翻到第5章的時候,被開篇第二段話深深吸引和折服:函數具有對象的全部特征,你完全可以把函數當對象調用。其實,函
導讀驗證javascript中Object和Function的關系的三段簡單代碼_javascript技巧:話說在樓豬理解和實踐能力尚欠火候的時候,在這篇里曾經照搬了李戰老師不少東西寫在自己的博客里作為知識儲備。這一次還是不能免俗。在翻到第5章的時候,被開篇第二段話深深吸引和折服:函數具有對象的全部特征,你完全可以把函數當對象調用。其實,函

話說在樓豬理解和實踐能力尚欠火候的時候,在這篇里曾經照搬了李戰老師不少東西寫在自己的博客里作為“知識儲備”。這一次還是不能免俗。在翻到第5章的時候,被開篇第二段話深深吸引和折服:“函數具有對象的全部特征,你完全可以把函數當對象調用。其實,函數就是對象,只不過比一般的對象多了一個括號“{}”操作符,這個操作符用來執行函數的邏輯,即函數本身還可以被調用,一般對象卻不可以被調用,除此之外完全相同”。寥寥數語,卻深刻闡釋了對象和函數的關系。下面樓豬就通過自己寫的幾段簡單代碼,論證一下javascript內置Object和Function的關系。
1、Function就是Object,Object就是Function
代碼如下:
alert(Function instanceof Object); // true
alert(Object instanceof Function); // true
如你所看到的那樣,通過instanceof操作符,函數就是對象,對象就是函數。
2、既然1是成立的,那么Function擴展的原型方法,Object能“得到”嗎?
代碼如下:
alert(Object.funcMethod); // undefined
Function.prototype.funcMethod = function() {
/*some function method code here*/
}
alert(Function.funcMethod);
alert(Object.funcMethod);
alert(Function.funcMethod === Object.funcMethod); //true
你沒有看錯,我們為Function擴展的原型方法funcMethod,Object實現了神奇的“不勞而獲”。
3、既然1和2都成立,那么Object擴展的原型方法,Function能“得到”嗎?!
代碼
代碼如下:
alert(Function.objMethod); // undefined
Object.prototype.objMethod = function() {
/*some object method code here*/
}
alert(Object.objMethod);
alert(Function.objMethod);
alert(Function.objMethod === Object.objMethod); //true or false?
上面代碼中最后有個問號的那一行是彈出true還是false呢?賣個關子,根據樓豬通篇直白而單純的表述,你應該已經知道結果了,這里不公布答案了。
最后,容樓豬在這里得意地自戀一下:個人認為上面這三段代碼應該比原書中驗證“函數就是對象的本質”的代碼更具有說服力。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
驗證javascript中Object和Function的關系的三段簡單代碼_javascript技巧
驗證javascript中Object和Function的關系的三段簡單代碼_javascript技巧:話說在樓豬理解和實踐能力尚欠火候的時候,在這篇里曾經照搬了李戰老師不少東西寫在自己的博客里作為知識儲備。這一次還是不能免俗。在翻到第5章的時候,被開篇第二段話深深吸引和折服:函數具有對象的全部特征,你完全可以把函數當對象調用。其實,函