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

淺談javascript中的constructor

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

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怎么辦呢?簡(jiǎn)單,直接給Person.prototype.constructor賦值就可以了:

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

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

相關(guān)文章

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

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

    下面小編就為大家?guī)?lái)一篇Js刪除數(shù)組中某一項(xiàng)或幾項(xiàng)的幾種方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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來(lái)控制頁(yè)面中的標(biāo)簽等。下面小編和大家來(lái)一起學(xué)習(xí)下吧
    2019-05-05
  • 網(wǎng)頁(yè)中CDATA標(biāo)記的說(shuō)明

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

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

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

    JavaScript中this指向的處理是令大家普遍頭疼的問(wèn)題,這里我們舉一個(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ī)?lái)一篇javaScript知識(shí)點(diǎn)總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享 給大家,也給的大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • php中and 和 &&出坑指南

    php中and 和 &&出坑指南

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

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

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

最新評(píng)論

茶陵县| 高台县| 防城港市| 邓州市| 博野县| 瓦房店市| 泉州市| 上林县| 乌鲁木齐市| 公主岭市| 永兴县| 平南县| 西乡县| 伊宁市| 梨树县| 迁西县| 汉中市| 高雄县| 金沙县| 大埔县| 涪陵区| 山东省| 新龙县| 宜宾市| 云和县| 普兰店市| 乐都县| 昌宁县| 蒙阴县| 张家川| 大英县| 呼玛县| 体育| 当阳市| 普陀区| 凌云县| 杂多县| 临江市| 靖西县| 墨竹工卡县| 乐清市|