最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2010年06月27日 02:35:29   作者:  
今天重溫經(jīng)典書籍。這一次看的是博客園李戰(zhàn)老師寫的<<悟透JavaScript>>,也是被樓豬翻看最多的技術(shù)書籍之一。
話說在樓豬理解和實踐能力尚欠火候的時候,在這篇里曾經(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
復(fù)制代碼 代碼如下:

alert(Function instanceof Object); // true
alert(Object instanceof Function); // true

如你所看到的那樣,通過instanceof操作符,函數(shù)就是對象,對象就是函數(shù)。
2、既然1是成立的,那么Function擴(kuò)展的原型方法,Object能“得到”嗎?
復(fù)制代碼 代碼如下:

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擴(kuò)展的原型方法funcMethod,Object實現(xiàn)了神奇的“不勞而獲”。
3、既然1和2都成立,那么Object擴(kuò)展的原型方法,F(xiàn)unction能“得到”嗎?!
代碼
復(fù)制代碼 代碼如下:

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ì)”的代碼更具有說服力。

相關(guān)文章

  • 淺談js中同名函數(shù)和同名變量的執(zhí)行問題

    淺談js中同名函數(shù)和同名變量的執(zhí)行問題

    下面小編就為大家?guī)硪黄獪\談js中同名函數(shù)和同名變量的執(zhí)行問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 關(guān)于Stream和Buffer的相互轉(zhuǎn)換詳解

    關(guān)于Stream和Buffer的相互轉(zhuǎn)換詳解

    這篇文章主要給大家介紹了關(guān)于Stream和Buffer相互轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • JS+CSS實現(xiàn)炫酷光感效果

    JS+CSS實現(xiàn)炫酷光感效果

    這篇文章主要為大家詳細(xì)介紹了JS+CSS實現(xiàn)炫酷光感效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 詳解JS事件循環(huán)及宏任務(wù)微任務(wù)的原理

    詳解JS事件循環(huán)及宏任務(wù)微任務(wù)的原理

    在js中,我們一般將所有的任務(wù)都分成兩類,一種是同步任務(wù),另外一種是異步任務(wù)。而在異步任務(wù)中,又有著更加細(xì)致的分類,那就是微任務(wù)和宏任務(wù)。本文將詳細(xì)講解這二者的原理與使用,需要的可以參考一下
    2022-05-05
  • sencha touch 模仿tabpanel導(dǎo)航欄TabBar的實例代碼

    sencha touch 模仿tabpanel導(dǎo)航欄TabBar的實例代碼

    這篇文章介紹了sencha touch 模仿tabpanel導(dǎo)航欄TabBar的實例代碼,有需要的朋友可以參考一下
    2013-10-10
  • JS瀏覽器導(dǎo)航欄navigator的一些冷知識

    JS瀏覽器導(dǎo)航欄navigator的一些冷知識

    這篇文章主要為大家介紹了JS導(dǎo)航欄navigator的一些冷知識使用方法實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • javascript前端和后臺進(jìn)行數(shù)據(jù)交互方法示例

    javascript前端和后臺進(jìn)行數(shù)據(jù)交互方法示例

    這篇文章主要介紹了javascript前端和后臺進(jìn)行數(shù)據(jù)交互方法示例,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • JavaScript中window和document用法詳解

    JavaScript中window和document用法詳解

    這篇文章主要介紹了JavaScript中window和document用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 一個精簡的JS DIV層tab切換代碼

    一個精簡的JS DIV層tab切換代碼

    下面的代碼是比較精簡的js tab切換代碼,原理也比較簡單。
    2010-03-03
  • 僅30行代碼實現(xiàn)Javascript中的MVC

    僅30行代碼實現(xiàn)Javascript中的MVC

    這篇文章主要介紹了僅30行代碼實現(xiàn)Javascript中的MVC的方法,MVC的基礎(chǔ)是觀察者模式,這是實現(xiàn)model和view同步的關(guān)鍵,想要深入了解的朋友可以參考本文
    2016-02-02

最新評論

阿拉善盟| 芮城县| 阳泉市| 政和县| 沙河市| 温泉县| 玉屏| 布尔津县| 汝州市| 桦甸市| 安福县| 江阴市| 玉田县| 泽普县| 牡丹江市| 桐城市| 买车| 曲阜市| 恩平市| 凉山| 临城县| 彩票| 闽侯县| 荣昌县| 泽州县| 渑池县| 贵德县| 大荔县| 迁西县| 开平市| 五寨县| 云阳县| 海城市| 南宫市| 宜阳县| 印江| 钟祥市| 洛阳市| 晋中市| 阳江市| 丹阳市|