<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      想變大佬的小孟砸

      導航

      JavaScript原型與閉包相關

       

      1什么是對象

      js中的值分為引用值和原始值 

      原始值:undefined  null  Boolean  string  number  原始值無法更改 存放在棧中

      引用值:Array  Object  Function                             引用值可更改 指向引用值的指針存放在棧中 數據存放在堆中 當相互賦值時 只是把棧中的指針賦給對方

      對象:一切引用類型都是對象,對象是屬性的集合

      對象都是通過函數創建的 函數都是對象

      語法糖:指計算機語言中添加的某種語法,這種語法對語言的功能并沒有影響,但是更方便程序員使用。通常來說使用語法糖能夠增加程序的可讀性,從而減少程序代碼出錯的機會。

      2. 原型 -- prototype

         js函數的默認屬性 -- prototype  屬性值為一個對象  對象中僅包含constructor  constructor指向函數本身

        Object.prototypt             

      3.隱式原型 --  __proto__

      對象有個默認的屬性 __proto__ 他絕對等于創建他的函數的prototype

      即function a () {}

         var b = new a();

         b.__proto__ === a.prototype

         obj.__proto === Object.prototype

      圖示

      特例

      Object.prototype也是個對象 但是他的__proto__ 為null;

      另外:__proto__是原型訪問器。目前原型訪問器,有3類:標準原型訪問器Object.getPrototypeOf(object);該訪問器,火狐和谷歌差不多都支持。其次,是非標準訪問器object.__proto__,對的就是你正在使用的這個,這個訪問器,IE不支持,估計也還有其他基于IE內核的瀏覽器也不支持,所以并不是每一個對象都有它。最后就是通用訪問器,object.constructor.prototype去得到原型。

      原型鏈完整圖

       

      有待進一步理解

      4.typeof()       .. instanceof  ..   

      typeof()是可以判斷括號中參數的類型 但只限于原始類型  在引用類型中 他只返回function/object

      A instanceof B 則表示一種繼承關系  規則為

                                                                          沿著A的__proto__這條線來找,同時沿著B的prototype這條線來找,如果兩條線能找到同一個引用,即同一個對象,那么就返回true。如果找到終點還未重合,則返回false。

      5.原型鏈

      訪問一個對象的屬性時,先在基本屬性中查找,如果沒有,再沿著__proto__這條鏈向上找,這就是原型鏈。

      fn.hasOwnPrototype(item)  可以判斷item是fn本身的 還是fn原型鏈上的    來自Object.prototype的屬性

      call  apply等來自js提供的Function.prototype中

      6.執行上下文

      全局變量下:

      變量/函數表達式  --  提前聲明  undefined

      函數聲明             --   提前聲明 并賦值

      this                      --   賦值

      函數下:

      在函數聲明的時候,內部的自由變量等就已經確定了其作用域  函數每被調用一次,都會生成一個新的執行上下文

      7.this的指向

      this指向調用該函數的對象   

      注意

       當一個函數被call和apply調用時,this的值就取傳入的對象的值

        這種情況下函數f的this仍為window

      8.執行上下文棧

      處于活動狀態的執行上下文環境只有一個。

      其實這是一個壓棧出棧的過程——執行上下文棧

      9.作用域

      javascript除了全局作用域之外,只有函數可以創建的作用域。

      我們在聲明變量時,全局代碼要在代碼前端聲明,函數中要在函數體一開始就聲明好。除了這兩個地方,其他地方都不要出現變量聲明。而且建議用“單var”形式

      作用域最大的用處就是隔離變量,不同作用域下同名變量不會有沖突

      作用域只是一個“地盤”,一個抽象的概念,其中沒有變量。要通過作用域對應的執行上下文環境來獲取變量的值  

      作用域中變量的值是在執行過程中產生的確定的,而作用域卻是在函數創建時就確定了。

      如果要查找一個作用域下某個變量的值,就需要找到這個作用域對應的執行上下文環境,再在其中尋找變量的值。

      作用域是靜態的組織結構,上下文是動態的計算。

      10.自由變量

      在A作用域中使用的變量x,卻沒有在A作用域中聲明(即在其他作用域中聲明的),對于A作用域來說,x就是一個自由變量。

      自由變量要到創建這個函數的那個作用域中取值——是“創建”,而不是“調用”

      11.作用域鏈

      12.閉包

      閉包應用的兩種情況:

      函數作為返回值,函數作為參數傳遞。

      使用閉包會增加內容開銷

      筆記總結來源http://www.rzrgm.cn/wangfupeng1988/p/4001284.html

      大佬寫的很棒

      posted on 2018-06-10 15:49  想變大佬的小孟砸  閱讀(114)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲欧洲成人a∨在线| 国产日产亚洲系列av| 亚洲中文字幕在线二页| 国产成人午夜福利在线播放| 精品综合一区二区三区四区| 久热这里只有精品12| 国产精品一品二区三区日韩| 美女爽到高潮嗷嗷嗷叫免费网站| 国产精品日韩中文字幕熟女| 久久亚洲国产精品久久| 9l精品人妻中文字幕色| 日韩中文字幕国产精品| 亚洲成人精品综合在线| 蜜臀av黑人亚洲精品| 在线日韩日本国产亚洲| 热久在线免费观看视频| 日韩中文字幕国产精品| 久久久精品人妻一区二区三区| 亚洲人成小说网站色在线 | 亚洲精品一区久久久久一品av| 午夜亚洲国产理论片二级港台二级 | 日日噜噜夜夜狠狠久久蜜桃| 亚洲精品久荜中文字幕| 亚洲成a∨人片在线观看不卡| 国产成人精品永久免费视频| 威海市| 亚洲一区在线成人av| 黄色A级国产免费大片视频| 亚洲熟妇自偷自拍另亚洲| 最新亚洲人成网站在线影院| 巨胸美乳无码人妻视频漫画| 亚洲国产成人精品区综合| 50路熟女| 日本道播放一区二区三区| 亚洲色偷偷色噜噜狠狠99| 国产人妻精品午夜福利免费 | 丰满大爆乳波霸奶| 一色桃子中出欲求不满人妻| 国产福利在线观看免费第一福利| 国产成人午夜福利在线播放| 天天做天天爱夜夜爽导航|