<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ? ?每個類都有一個prototype靜態屬性,該屬性包含了一個標識該類的一個對象,稱為原型對象。原型對象定義了部分內部屬性,并包含了部分基類屬性,Javascript解釋引擎可知該類的基類;同時基類也有相同的構成,因而又可以推知基類的基類,這樣的鏈條就稱為原型鏈。原型鏈的盡頭是Object的原型對象,其prototype屬性值是null。 ## 一、內部屬性 ? ? ? ? 1、Prototype屬性:表示該類的父類的原型對象,除了IE之外,都可以用__proto__屬性訪問。每個JS內建類的Pro頭type屬性值是Object,因為都是直接繼承Object。注意與prototype屬性的首字母區別。 ? ? ? ? 2、Class屬性:表示類名,是一個字符串。ECMA-262標準第5版規定的所有內建Javascript類的Class屬性值: ? ? ? ? ? ? ? “Arguments”,"Array","Boolean","Date","Error"."Function","JSON","Math","Number","Object"."RegExp"."String" 例如內建類Array的原型對象定義: ~~~ { Prototype:Object的原型對象, Class:"Array" } ~~~ ## 二 、__proto__和prototype的區別 ? 1、prototype是靜態屬性,__proto__是一個實例屬性,前者是類的原型對象,后者表示原型對象的內部屬性Prototype屬性值。 ? 2、每個實例都有一個__proto__屬性,用于引用創建它的構造方法的prototype屬性,即原型對象,如(new Array(“abc”)).__proto__ === Array.prototype返回true ? 3、__proto__有同名的靜態屬性__proto__,也返回原型對象。但是Array.__proto__ == Array.prototype返回FALSE,一般不推薦使用靜態的__proto__。 ## 三、檢查原型鏈 ? 1、查看對象是否在指定對象的原型鏈中:類名.prototype.isPrototypeOf(obj)-->obj是要檢查的實例對象,若存在原型鏈中則返回TRUE,反之返回FALSE ? 2、查看指定對象是否定義了特定屬性和方法:obj.hasOwnProperty(propName)--->obj是實例對象,但是該方法無法訪問原型鏈中的方法和屬性,可以用原型代替 ~~~ var a = new Array(); alert(a.hasOwnProperty("join")); //false alert(Array.prototype.hasOwnProperty("join")); //true ~~~ 在 Array的原型中有join方法,以上是不同方式訪問的結果。使用hasOwnProperty方法時,屬性和方法必須對象本身定義的成員,所以該方法可以過濾原型鏈中繼承的方法和屬性 ? 3、檢查指定對象是否定義了特定屬性且可以枚舉:obj.propertyIsEnumerable(propName).自定義的屬性可以枚舉,內置屬性不可以枚舉,如Array的length屬性。改方法不檢查原型鏈。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看