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

javascript中使用new與不使用實(shí)例化對象的區(qū)別

 更新時間:2015年06月22日 09:35:12   投稿:hebedich  
這篇文章主要介紹了javascript中使用new與不使用實(shí)例化對象的區(qū)別的相關(guān)資料,需要的朋友可以參考下

我們先來看個實(shí)例

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

請問這以下兩種實(shí)例化對象方式有什么區(qū)別呢?

var mefun1 = new Me('fei','20','it');
var mefun2 = Me('fei','20','it');

簡單的說

第一種是構(gòu)造函數(shù)式,即通過new運(yùn)算符調(diào)用構(gòu)造函數(shù)Function來創(chuàng)建函數(shù)
第二種不是實(shí)例化,只是調(diào)用函數(shù)把返回值賦給變量。

再擴(kuò)展下

JavaScript 中并沒有真正的類,但JavaScript 中有構(gòu)造函數(shù)和new 運(yùn)算符。構(gòu)造函數(shù)用來給實(shí)例對象初始化屬性和值。任何JavaScript 函數(shù)都可以用做構(gòu)造函數(shù),構(gòu)造函數(shù)必須使用new 運(yùn)算符作為前綴來創(chuàng)建新的實(shí)例。

new 運(yùn)算符改變了函數(shù)的執(zhí)行上下文,同時改變了return 語句的行為。實(shí)際上,使用new和構(gòu)造函數(shù)很類似于傳統(tǒng)的實(shí)現(xiàn)了類的語言:

// 實(shí)例化一個Me
var alice = new Me('alice', 18, 'Coder');
// 檢查這個實(shí)例
assert( alice instanceof Me );

構(gòu)造函數(shù)的命名通常使用駝峰命名法,首字母大寫,以此和普通的函數(shù)區(qū)分開來,這是
一種習(xí)慣用法。

// 不要這么做!
Me('alice', 18, 'Coder'); //=> undefined

這個函數(shù)只會返回undefined,并且執(zhí)行上下文是window(全局)對象,無意間創(chuàng)建了3個全局變量name,age,job。調(diào)用構(gòu)造函數(shù)時不要丟掉new 關(guān)鍵字。

當(dāng)使用new 關(guān)鍵字來調(diào)用構(gòu)造函數(shù)時,執(zhí)行上下文從全局對象(window)變成一個空的上下文,這個上下文代表了新生成的實(shí)例。因此,this 關(guān)鍵字指向當(dāng)前創(chuàng)建的實(shí)例。盡管理解起來有些繞,實(shí)際上其他語言內(nèi)置類機(jī)制的實(shí)現(xiàn)也是如此。

默認(rèn)情況下,如果你的構(gòu)造函數(shù)中沒有返回任何內(nèi)容,就會返回this——當(dāng)前的上下文。

要不然就返回任意非原始類型的值.

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

最新評論

樟树市| 福泉市| 色达县| 高安市| 石楼县| 延津县| 和平区| 瑞丽市| 岳阳县| 石林| 佳木斯市| 广汉市| 灵宝市| 平舆县| 上思县| 柘城县| 新源县| 尼勒克县| 保德县| 双辽市| 辰溪县| 信阳市| 青海省| 千阳县| 三台县| 益阳市| 望都县| 安泽县| 云林县| 醴陵市| 什邡市| 什邡市| 斗六市| 长治县| 太和县| 五莲县| 江口县| 大连市| 镇江市| 天台县| 金川县|