最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談javascript中的constructor

 更新時(shí)間:2016年06月08日 16:45:50   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談javascript中的constructor。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

constructor,構(gòu)造函數(shù),對(duì)這個(gè)名字,我們都不陌生,constructor始終指向創(chuàng)建當(dāng)前對(duì)象的構(gòu)造函數(shù)。

這里有一點(diǎn)需要注意的是,每個(gè)函數(shù)都有一個(gè)prototype屬性,這個(gè)prototype的constructor指向這個(gè)函數(shù),這個(gè)時(shí)候我們修改這個(gè)函數(shù)的prototype時(shí),就發(fā)生了意外。如

function Person(name,age){
  this.name = name;
  this.age = age;
}

Person.prototype.getAge = function(){
  return this.age;
}
Person.prototype.getName = function(){
  return this.name;
}

var p = new Person("Nicholas",18);
console.log(p.constructor); //Person(name, age)
console.log(p.getAge()); //18
console.log(p.getName()); //Nicholas

但是如果是這樣:

function Person(name,age){
  this.name = name;
  this.age = age;
}

Person.prototype = {
  getName:function(){
    return this.name;
  },
  getAge:function(){
    return this.age;
  }
}

var p = new Person("Nicholas",18);
console.log(p.constructor); //Object()
console.log(p.getAge()); //18
console.log(p.getName()); //Nicholas

結(jié)果constructor變了。

 原因就是prototype本身也是對(duì)象,上面的代碼等價(jià)于

Person.prototype = new Object({
  getName:function(){
    return this.name;
  },
  getAge:function(){
    return this.age;
  }
});

因?yàn)閏onstructor始終指向創(chuàng)建當(dāng)前對(duì)象的構(gòu)造函數(shù),那么就不難理解上面代碼p.constructor輸出的是Object了。

對(duì)于修改了prototype之后的constructor還想讓它指向Person怎么辦呢?簡單,直接給Person.prototype.constructor賦值就可以了:

Person.prototype = {
  constructor:Person,
  getName:function(){
    return this.name;
  },
  getAge:function(){
    return this.age;
  }
}

以上這篇淺談javascript中的constructor就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Js刪除數(shù)組中某一項(xiàng)或幾項(xiàng)的幾種方法(推薦)

    Js刪除數(shù)組中某一項(xiàng)或幾項(xiàng)的幾種方法(推薦)

    下面小編就為大家?guī)硪黄狫s刪除數(shù)組中某一項(xiàng)或幾項(xiàng)的幾種方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • js基石系列學(xué)習(xí)之錯(cuò)誤類型

    js基石系列學(xué)習(xí)之錯(cuò)誤類型

    這篇文章主要為大家介紹了js基石系列學(xué)習(xí)之錯(cuò)誤類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • DOM相關(guān)內(nèi)容速查手冊(cè)

    DOM相關(guān)內(nèi)容速查手冊(cè)

    DOM相關(guān)內(nèi)容速查手冊(cè)...
    2007-02-02
  • 了解javascript中的Dom操作

    了解javascript中的Dom操作

    DOM 給我們提供了一些方法,讓我們可以使用js來控制頁面中的標(biāo)簽等。下面小編和大家來一起學(xué)習(xí)下吧
    2019-05-05
  • 網(wǎng)頁中CDATA標(biāo)記的說明

    網(wǎng)頁中CDATA標(biāo)記的說明

    經(jīng)常在網(wǎng)頁html代碼中看見這樣的嵌入標(biāo)簽,但實(shí)際使用沒有用過,特此在記錄下。
    2010-09-09
  • 實(shí)例講解JavaScript中的this指向錯(cuò)誤解決方法

    實(shí)例講解JavaScript中的this指向錯(cuò)誤解決方法

    JavaScript中this指向的處理是令大家普遍頭疼的問題,這里我們舉一個(gè)實(shí)例講解JavaScript中的this指向錯(cuò)誤解決方法,需要的朋友可以參考下
    2016-06-06
  • 淺談JS閉包中的循環(huán)綁定處理程序

    淺談JS閉包中的循環(huán)綁定處理程序

    初學(xué)者經(jīng)常碰到的,即獲取HTML元素集合,循環(huán)給元素添加事件。在事件響應(yīng)函數(shù)中(event handler)獲取對(duì)應(yīng)的索引。但每次獲取的都是最后一次循環(huán)的索引。原因是初學(xué)者并未理解JavaScript的閉包特性。
    2014-11-11
  • javaScript知識(shí)點(diǎn)總結(jié)(必看篇)

    javaScript知識(shí)點(diǎn)總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猨avaScript知識(shí)點(diǎn)總結(jié)(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享 給大家,也給的大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • php中and 和 &&出坑指南

    php中and 和 &&出坑指南

    在邏輯運(yùn)算符中,提到與和或,我們可能立刻想到的是&&、||,在php中還有and、or.然而and和or中有一個(gè)小小的坑,今天我們就來探討下php中and 和 &&
    2018-07-07
  • 關(guān)于JavaScript的變量的數(shù)據(jù)類型的判斷方法

    關(guān)于JavaScript的變量的數(shù)據(jù)類型的判斷方法

    這篇文章主要介紹了關(guān)于JavaScript的變量的數(shù)據(jù)類型的判斷方法,JS是一種弱類型語言,其數(shù)據(jù)類型的相關(guān)特性有時(shí)也受到不少開發(fā)者的詬病,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

桐庐县| 高唐县| 林甸县| 南丰县| 左权县| 得荣县| 泰来县| 东源县| 新宁县| 类乌齐县| 三都| 龙江县| 邢台市| 屯门区| 门头沟区| 安泽县| 张掖市| 马鞍山市| 舒兰市| 石嘴山市| 巴马| 衡南县| 库伦旗| 简阳市| 肥乡县| 于都县| 平武县| 乳山市| 新巴尔虎右旗| 罗江县| 南雄市| 汕尾市| 永城市| 商南县| 苗栗市| 涟源市| 苗栗市| 古蔺县| 东宁县| 孟村| 清苑县|