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

js核心基礎(chǔ)之構(gòu)造函數(shù)constructor用法實(shí)例分析

 更新時間:2019年05月11日 09:22:19   作者:zhy前端攻城獅  
這篇文章主要介紹了js核心基礎(chǔ)之構(gòu)造函數(shù)constructor用法,結(jié)合具體實(shí)例形式分析了javascript構(gòu)造函數(shù)constructor概念、原理、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下

本文實(shí)例講述了js核心基礎(chǔ)之構(gòu)造函數(shù)constructor用法。分享給大家供大家參考,具體如下:

在js中,可以利用構(gòu)造函數(shù)來創(chuàng)建特定類型的對象,其中,有一些原生的構(gòu)造函數(shù),Object、Array、等等,所以,當(dāng)type of Object時,返回的是function。此外,我們還可以創(chuàng)建自定義的構(gòu)造函數(shù),從而自定義對象的屬性以及方法。

例如:

function Person(name,age,job) {
  this.name=name;
  this.age=age;
  this.job=job;
  this.sayName=function () {
    alert(this.name);
  }
}
var person1=new Person('zhy',18,'SoftWare Engineer');
var person2=new Person('zhy2',19,'Doctor');

注意:要創(chuàng)建Person的新實(shí)例,必須使用new操作符。如果不使用new,則屬性和方法都被添加給了window對象了。

這種方式調(diào)用構(gòu)造函數(shù)實(shí)際上會經(jīng)歷一下4個步驟:

① 創(chuàng)建一個新對象;
② 將構(gòu)造函數(shù)的作用域賦給新對象,因此,this就指向了這個新對象;
③ 執(zhí)行構(gòu)造函數(shù)中的代碼,即為這個新對象添加屬性、方法;
④ 返回新對象。

缺點(diǎn):

在上述例子中,我們可以知道,每個實(shí)例都有一個sayName的方法,但是

console.log(person1.sayName==person2.sayName);//false

因為,每創(chuàng)建一個實(shí)例的時候,實(shí)際上所做的是下面這種:

function Person(name,age,job) {
  this.name=name;
  this.age=age;
  this.job=job;
  this.sayName=new Function () {
    alert(this.name);
  }
}

所以,person1的sayName跟person2的sayName不是同一個實(shí)例。但是我們可以這樣做:

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

這樣一來,每個實(shí)例對象里面 的sayName函數(shù)指向的都是同一個函數(shù)。

可是問題又來了,如果對象有很多的函數(shù)要定義,那么就要定義很多個全局函數(shù),沒有封裝性可言了,好在這些問題可以通過使用原型模式來解決。

本文參照《JavaScript高級程序編程》

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • js 數(shù)組去重的四種實(shí)用方法

    js 數(shù)組去重的四種實(shí)用方法

    怎樣去掉Javascript的Array的重復(fù)項,這個問題看起來簡單,但考的不僅僅是實(shí)現(xiàn)這個功能,更能看出你對計算機(jī)程序執(zhí)行的深入理解
    2014-09-09
  • javascript禁止超鏈接跳轉(zhuǎn)的方法

    javascript禁止超鏈接跳轉(zhuǎn)的方法

    這篇文章主要介紹了javascript禁止超鏈接跳轉(zhuǎn)的方法,結(jié)合實(shí)例分析了JavaScript事件機(jī)制與鼠標(biāo)事件的響應(yīng)操作技巧,需要的朋友可以參考下
    2016-02-02
  • 簡單實(shí)現(xiàn)jQuery輪播效果

    簡單實(shí)現(xiàn)jQuery輪播效果

    這篇文章主要教大家如何簡單實(shí)現(xiàn)jQuery輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • js跳轉(zhuǎn)頁面方法實(shí)現(xiàn)匯總

    js跳轉(zhuǎn)頁面方法實(shí)現(xiàn)匯總

    js跳轉(zhuǎn)頁面的方法有很多,本文搜集整理了一些,個人感覺還不錯,希望對大家有所幫助
    2014-02-02
  • JavaScript 數(shù)組詳解

    JavaScript 數(shù)組詳解

    學(xué)習(xí)js就不得不學(xué)他的數(shù)組,這篇文章是由色拉油整理下,需要學(xué)習(xí)js數(shù)組的朋友可以參考下
    2013-10-10
  • javascript實(shí)現(xiàn)鼠標(biāo)拖尾特效

    javascript實(shí)現(xiàn)鼠標(biāo)拖尾特效

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)鼠標(biāo)拖尾特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • js中arguments的用法(實(shí)例講解)

    js中arguments的用法(實(shí)例講解)

    這篇文章主要是對js中arguments的用法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • axios如何利用promise無痛刷新token的實(shí)現(xiàn)方法

    axios如何利用promise無痛刷新token的實(shí)現(xiàn)方法

    這篇文章主要介紹了axios如何利用promise無痛刷新token的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • iscroll碰到Select無法選擇下拉刷新的解決辦法

    iscroll碰到Select無法選擇下拉刷新的解決辦法

    本文主要介紹iscroll插件在使用中,遇到select下拉框無法下拉刷新的處理方法,希望能幫到大家。
    2016-05-05
  • 原生JS實(shí)現(xiàn)小小的音樂播放器

    原生JS實(shí)現(xiàn)小小的音樂播放器

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)音樂播放器,支持循環(huán)、隨機(jī)播放,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論

宁都县| 盐源县| 大宁县| 鄱阳县| 海阳市| 观塘区| 阿图什市| 依兰县| 仙居县| 河津市| 阳高县| 红桥区| 察雅县| 江油市| 淮阳县| 博野县| 息烽县| 航空| 临西县| 平顶山市| 珠海市| 德兴市| 古浪县| 浦北县| 姚安县| 绥宁县| 文山县| 宜兰县| 清徐县| 于田县| 宣恩县| 元朗区| 宣城市| 和林格尔县| 遵义县| 长宁区| 宁阳县| 阿坝县| 清河县| 岢岚县| 海南省|