1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          constructor(JavaScript中的constructor屬性怎么使用)

          來源:互聯網轉載 時間:2024-05-12 02:35:59

          constructor屬性始終指向創建當前對象的構造函數。比如下面例子:

          //等價于varfoo=newArray(1,56,34,12);vararr=[1,56,34,12];console.log(arr.constructor===Array);//true//等價于varfoo=newFunction();varFoo=function(){};console.log(Foo.constructor===Function);//true//由構造函數實例化一個obj對象varobj=newFoo();console.log(obj.constructor===Foo);//true//將上面兩段代碼合起來,就得到下面的結論console.log(obj.constructor.constructor===Function);//true

          但是當constructor遇到prototype時,有趣的事情就發生了。

          我們知道每個函數都有一個默認的屬性prototype,而這個prototype的constructor默認指向這個函數。如下例所示:

          functionPerson(name){this.name=name;};Person.prototype.getName=function(){returnthis.name;};varp=newPerson("ZhangSan");console.log(p.constructor===Person);//trueconsole.log(Person.prototype.constructor===Person);//true//將上兩行代碼合并就得到如下結果console.log(p.constructor.prototype.constructor===Person);//true

          當時當我們重新定義函數的prototype時(注意:和上例的區別,這里不是修改而是覆蓋),constructor屬性的行為就有點奇怪了,如下示例:

          functionPerson(name){this.name=name;};Person.prototype={getName:function(){returnthis.name;}};varp=newPerson("ZhangSan");console.log(p.constructor===Person);//falseconsole.log(Person.prototype.constructor===Person);//falseconsole.log(p.constructor.prototype.constructor===Person);//false

          為什么呢?

          原來是因為覆蓋Person.prototype時,等價于進行如下代碼操作:

          Person.prototype=newObject({getName:function(){returnthis.name;}});

          而constructor屬性始終指向創建自身的構造函數,所以此時Person.prototype.constructor === Object,即是:

          functionPerson(name){this.name=name;};Person.prototype={getName:function(){returnthis.name;}};varp=newPerson("ZhangSan");console.log(p.constructor===Object);//trueconsole.log(Person.prototype.constructor===Object);//trueconsole.log(p.constructor.prototype.constructor===Object);//true

          怎么修正這種問題呢?方法也很簡單,重新覆蓋Person.prototype.constructor即可:

          functionPerson(name){this.name=name;};Person.prototype=newObject({getName:function(){returnthis.name;}});Person.prototype.constructor=Person;varp=newPerson("ZhangSan");console.log(p.constructor===Person);//trueconsole.log(Person.prototype.constructor===Person);//trueconsole.log(p.constructor.prototype.constructor===Person);//true

          “JavaScript中的constructor屬性怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注本站網站,小編將為大家輸出更多高質量的實用文章!

          標簽:constructor-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          【資料圖】在生活中,很多人都不知道名偵探柯南的所有電影版是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的名偵探柯南的所有電影版相關的一些知識,我們一起來學習下吧!《名偵探柯南》至今共發行了22部電影版動畫,如下所示:《引爆摩天樓》《第14號獵物》《世紀末的魔術師》《瞳孔中的暗殺者》《往天國的倒數計時》《貝克街的亡靈》《迷宮的十字路》《銀翼的奇術師》《水平線上的陰謀》《偵探們的鎮魂歌》《紺...

          銀監會七不準是什么?1.不允許貸款轉讓信貸業務應堅持貸款實際支付和委托支付的原則,將全部貸款資金直接支付給借款人的交易對手。不允許強行設定條件或協商將部分貸款轉為存款。2.不允許存貸款掛鉤貸款業務和存款業務應嚴格分開,存款不應作為審批和發放貸款的前提。3.不允許貸款收費要求客戶接受不合理的中介業務或其他金融服務,收取費用。不允許通過發放貸款或其他方式提供融資等方式.4.不浮利分費要遵循利費分離的原...

          大家在出國換貨幣的時候是一定會用到匯率轉換計算的,不同的國家之間的金幣轉換都需要一個公式來進行換算。而匯率指的就是一種貨幣兌換成另一-種貨幣的比率,通常也被稱為匯價。匯率換算公式一共有兩種,分別是直接標價法計算和間接標價法計算,下面就帶大家來學習這兩種轉換公式。1、直接標價法:在美國、英國等一 些國家不適用,其他大部分的國家都可以使用,他的計算標準是:匯率升貶值率= (舊匯率/新匯率-1)x100...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>