<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                #hasOwnProperty和constructor的使用 ![](https://box.kancloud.cn/2c81b47778153a4222a8f58dd7e290b6_854x534.png) hasOwnProperty 看是不是對象自身下面的屬性 ``` var arr = []; arr.num = 10; Array.prototype.num2 = 20; alert( arr.hasOwnProperty('num') ); // true alert( arr.hasOwnProperty('num2') ); // false ``` constructor:查看對象的構造函數 ``` function Aaa(){ } var a1 = new Aaa(); alert( a1.constructor ); var arr = []; alert( arr.constructor ); alert( arr.constructor == Array ); // true ``` ``` function Aaa(){ } // Aaa.prototype.constructor = Aaa; // 這句話是系統自動生成的,也是由系統生成的唯一的一句話 var a1 = new Aaa(); alert(a1.constructor); ``` ``` function Aaa(){ } // Aaa.prototype.constructor = Aaa; // 每一個函數都會有的,都是系統自動生成的 Aaa.prototype.constructor = Array; // 可以把它覆蓋掉 var a1 = new Aaa(); alert(a1.constructor); ``` 系統只會自動生成一個constructor,那hasOwnProperty又是從哪里來的呢 ``` function Aaa(){ } var a1 = new Aaa(); alert(a1.hasOwnProperty == Object.prototype.hasOwnProperty); // true ``` 這說明a1.hasOwnProperty中的hasOwnProperty方法是在Object對象下面的 有時候我們會在不經意間就把constructor改掉了 ``` function Aaa(){ } Aaa.prototype.name = 'zhangsan'; Aaa.prototype.age = 20; var a1 = new Aaa(); alert( a1.constructor ); ``` 轉換成簡寫形式 ``` function Aaa(){ } Aaa.prototype = { name: 'zhangsan', age: 20 }; var a1 = new Aaa(); alert( a1.constructor ); ``` 上面這種寫法就會把constructor改掉。如果想要使用簡寫形式,需要修正constructor的指向 ``` function Aaa(){ } Aaa.prototype = { constructor: Aaa, name: 'zhangsan', age: 20 }; var a1 = new Aaa(); alert( a1.constructor ); ``` 系統自動生成的屬性 for in 是找不到的 ``` function Aaa(){ } for(var attr in Aaa.prototype){ alert(attr); } ``` 重寫系統自動生成的屬性 for in 同樣找不到 ``` function Aaa(){ } Aaa.prototype.constructor = Aaa; for(var attr in Aaa.prototype){ alert(attr); } ``` 非系統自動生成的屬性 for in 可以找到 ``` function Aaa(){ } Aaa.prototype.name = 'zhangsan'; for(var attr in Aaa.prototype){ alert(attr); // zhangsan } ```
                  <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>

                              哎呀哎呀视频在线观看