国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

驗證javascript中Object和Function的關(guān)系的三段簡單代碼

2024-09-06 12:45:33
字體:
供稿:網(wǎng)友
話說在樓豬理解和實踐能力尚欠火候的時候,在這篇里曾經(jīng)照搬了李戰(zhàn)老師不少東西寫在自己的博客里作為“知識儲備”。這一次還是不能免俗。在翻到第5章的時候,被開篇第二段話深深吸引和折服:“函數(shù)具有對象的全部特征,你完全可以把函數(shù)當(dāng)對象調(diào)用。其實,函數(shù)就是對象,只不過比一般的對象多了一個括號“{}”操作符,這個操作符用來執(zhí)行函數(shù)的邏輯,即函數(shù)本身還可以被調(diào)用,一般對象卻不可以被調(diào)用,除此之外完全相同”。寥寥數(shù)語,卻深刻闡釋了對象和函數(shù)的關(guān)系。下面樓豬就通過自己寫的幾段簡單代碼,論證一下javascript內(nèi)置Object和Function的關(guān)系。
  
1、Function就是Object,Object就是Function
代碼如下:
alert(Function instanceof Object); // true
alert(Object instanceof Function); // true

如你所看到的那樣,通過instanceof操作符,函數(shù)就是對象,對象就是函數(shù)。
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

你沒有看錯,我們?yōu)镕unction擴展的原型方法funcMethod,Object實現(xiàn)了神奇的“不勞而獲”。
3、既然1和2都成立,那么Object擴展的原型方法,F(xiàn)unction能“得到”嗎?!
代碼
代碼如下:
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呢?賣個關(guān)子,根據(jù)樓豬通篇直白而單純的表述,你應(yīng)該已經(jīng)知道結(jié)果了,這里不公布答案了。
  最后,容樓豬在這里得意地自戀一下:個人認(rèn)為上面這三段代碼應(yīng)該比原書中驗證“函數(shù)就是對象的本質(zhì)”的代碼更具有說服力。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 徐水县| 乌拉特后旗| 轮台县| 郸城县| 河西区| 梅河口市| 内乡县| 辽中县| 谷城县| 齐河县| 连江县| 夹江县| 闸北区| 湄潭县| 松原市| 星子县| 湖南省| 泸水县| 永顺县| 昭平县| 临海市| 肃宁县| 林芝县| 丰县| 大厂| 讷河市| 色达县| 常宁市| 蓬安县| 罗江县| 巴林左旗| 凌云县| 荣昌县| 洪雅县| 商丘市| 绵竹市| 山阴县| 巴南区| 娄烦县| 平潭县| 唐河县|