中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      對javascript的理解

      時(shí)間:2024-08-08 18:05:09 JavaScript 我要投稿

      對javascript的理解

        對象模型

        紅色虛線表示隱式Prototype鏈。

        這張對象模型圖中包含了太多東西,不少地方需要仔細(xì)體會(huì),可以寫些測試代碼進(jìn)行驗(yàn)證。徹底理解了這張圖,對JavaScript語言的了解也就差不多了。下面是一些補(bǔ)充說明:

        1. 圖中有好幾個(gè)地方提到build-in Function constructor,這是同一個(gè)對象,可以測試驗(yàn)證:

        復(fù)制代碼 代碼如下:

        //Passed in FF2.0, IE7, Opera9.25, Safari3.0.4

        Function==Function.constructor //result: true

        Function==Function.prototype.constructor //result: true

        Function==Object.constructor //result: true

        //Function also equals to Number.constructor, String.constructor, Array.constructor, RegExp.constructor, etc.

        function fn(){}

        Function==fn.constructor //result: true

        這說明了幾個(gè)問題: Function指向系統(tǒng)內(nèi)置的函數(shù)構(gòu)造器(build-in Function constructor);Function具有自舉性;系統(tǒng)中所有函數(shù)都是由Function構(gòu)造。

        2. 左下角的obj1, obj2...objn范指用類似這樣的代碼創(chuàng)建的對象: function fn1(){}; var obj1=new fn1();這些對象沒有本地constructor方法,但它們將從Prototype鏈上得到一個(gè)繼承的constructor方法,即fn.prototype.constructor,從函數(shù)對象的構(gòu)造過程可以知道,它就是fn本身了。

        3.右下角的obj1, obj2...objn范指用類似這樣的代碼創(chuàng)建的對象: var obj1=new Object();或var obj1={};或var obj1=new Number(123);或obj1=/w+/;等等。所以這些對象Prototype鏈的指向、從Prototype鏈繼承而來的 constructor的值(指它們的constructor是build-in Number constructor還是build-in Object constructor等)等依賴于具體的對象類型。另外注意的是,var obj=new Object(123);這樣創(chuàng)建的對象,它的類型仍然是Number,即同樣需要根據(jù)參數(shù)值的類型來確定。同樣它們也沒有本地constructor,而是從Prototype鏈上獲得繼承的constructor方法,即build-in *** constructor,具體是哪一個(gè)由數(shù)據(jù)類型確定。

        示例代碼

        復(fù)制代碼 代碼如下:

        //自定義對象代表,對應(yīng)Javascript Object Model中的use defined functions

        function Foo(){}

        //自定義對象創(chuàng)建的對象實(shí)例的代表,對應(yīng)Javascript Object Model中的objects that created by user defined functions

        var foo = new Foo();

        //String內(nèi)置函數(shù)代表

        //str為內(nèi)置函數(shù)創(chuàng)建的對象實(shí)例的代表,對應(yīng)Javascript Object Model中的objects that created by build-in constructors

        var str = new String("string");

        內(nèi)存展現(xiàn)

        你會(huì)發(fā)現(xiàn),它和《理解Javascript_09_Function與Object》中的內(nèi)存分析圖是一樣的,為什么呢?在《數(shù)據(jù)模型》中提到過,內(nèi)置對象都可以看作是函數(shù)的派生類型,例如Number instanceof Function為true,Number instanceof Object為true。在這個(gè)意義上,可以將它們跟用戶定義的函數(shù)等同看待。所以內(nèi)置對象和自定義對象的創(chuàng)建流程是一樣的。

        在理解了《Function與Object》的基礎(chǔ)上寫的,因此要理解本文必須理解Function與Object的關(guān)系!

      【對javascript的理解】相關(guān)文章:

      理解JavaScript原型鏈教程03-30

      javascript的閉包概念怎么理解03-29

      淺談javascript中的單線程理解03-30

      有關(guān)深入理解JavaScript中的并行處理的介紹03-30

      JavaScript的課堂講解03-31

      JavaScript 基礎(chǔ)教學(xué)04-01

      JavaScript學(xué)習(xí)筆記03-30

      常用的JavaScript模式03-10

      主站蜘蛛池模板: 精品久久久久久99人妻| 武鸣县| 国产在线欧美日韩精品一区二区| 华阴市| 亚洲午夜av福利久久久一区| 亚洲一区二区观看网站| 91中文人妻丝袜乱一区三区| 午夜日韩成年人视频在线观看| 易门县| 少妇极品熟妇人妻专区视频| 视频一区视频二区亚洲免费观看| av一区二区三区免费不卡| 久久久99精品视频| 英超| 南平市| 长宁区| 湘潭市| 汤阴县| 兴山县| 双鸭山市| 霸州市| 女同性恋精品一区二区三区| 鸡东县| 天镇县| 欧洲AV秘 无码一区二区三| 凤台县| 丰县| 无码视频一区=区| 日本一区二区三区中文字幕最新 | 亚洲AV秘 无码一区二区在线| 亚洲精品女主播麻豆久久91| 日本色偷偷| 国产精品专区一区二区av免费看 | 国产成人啪精品视频免费网| 2021年性爱喷水视频| 蜜桃av区一区二区三| 久久国产精品久久国产精品| 中文字幕精品一二三区| 免费人成视频网站在线观看不卡| 中文亚洲AV片在线观看无码| 民丰县|