亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js構(gòu)造函數(shù)創(chuàng)建對象是否加new問題

 更新時間:2018年01月22日 08:57:50   投稿:laozhang  
本篇文章主要給大家詳細分析了js構(gòu)造函數(shù)創(chuàng)建對象加new與不加new的問題,有這方面興趣的參考學習下。

今天看到這樣一道題:

填寫"TO DO"處的內(nèi)容讓下面代碼支持a.name = "name1"; b.name = "name2";

function Obj(name){
// TO DO
}
obj. /* TO DO */ = "name2";
var a = Obj("name1");
var b = new Obj;

 

問題1:new操作符做了些什么呢?

創(chuàng)建一個新對象;

將構(gòu)造函數(shù)的作用域賦給新對象(因此 this 就指向了這個新對象) ;

執(zhí)行構(gòu)造函數(shù)中的代碼(為這個新對象添加屬性) ;

返回新對象。

問題2:不加new操作符直接執(zhí)行構(gòu)造函數(shù)會發(fā)生什呢?

function Obj(name){
this.name = name;
console.log(this); // 嚴格模式下是undefined 非嚴格模式下是window對象
}
var a = Obj("name1");
console.log(a); // 結(jié)果 => undefined

哦,原來只是當作正常的函數(shù)調(diào)用來執(zhí)行,Obj沒有返回值,故a是undefined。

兩者區(qū)別總結(jié)

使用new操作符創(chuàng)建對象,并且構(gòu)造函數(shù)沒有返回值或者返回為基本數(shù)據(jù)類型,那么返回該對象,如下例:

function Obj(name){
this.name = name;
}
var b = new Obj;
console.log(b); // Obj { name: undefined }
function Obj(name){
this.name = name;
return 'chic';
}
var b = new Obj;
console.log(b); // 同上

如果構(gòu)造函數(shù)返回一個引用類型:

function Obj(name){
this.name = name;
return {};
}
var b = new Obj;
console.log(b); // {}

總結(jié)

對于不加new來執(zhí)行構(gòu)造函數(shù)來說,返回值就是構(gòu)造函數(shù)的執(zhí)行結(jié)果;對于加new關(guān)鍵字來執(zhí)行構(gòu)造函數(shù)而言,如果return的是基本數(shù)據(jù)類型,那么忽視掉該return值,如果返回的是一個引用類型,那么返回該引用類型。

那么問題答案你有了嗎?

參考答案 :

function Obj(name){
this.name = name;
return this;
}
Obj.prototype.name = "name2";
var a = Obj("name1");
var b = new Obj;

以上就是我們給大家整理的js構(gòu)造函數(shù)創(chuàng)建對象是否加new問題的全部內(nèi)容,大家閱讀后還有疑問可以在下方留言區(qū)討論,感謝你對腳本之家的支持。

相關(guān)文章

  • js中AppendChild與insertBefore的用法詳細解析

    js中AppendChild與insertBefore的用法詳細解析

    這篇文章主要是對js中AppendChild與insertBefore的用法進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 原生JS實現(xiàn)的雪花飄落動畫效果

    原生JS實現(xiàn)的雪花飄落動畫效果

    這篇文章主要介紹了原生JS實現(xiàn)的雪花飄落動畫效果,涉及javascript數(shù)值運算及頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • 小程序使用watch監(jiān)聽數(shù)據(jù)變化的方法詳解

    小程序使用watch監(jiān)聽數(shù)據(jù)變化的方法詳解

    這篇文章主要介紹了小程序使用watch監(jiān)聽數(shù)據(jù)變化的方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 單線程JavaScript實現(xiàn)異步過程詳解

    單線程JavaScript實現(xiàn)異步過程詳解

    這篇文章主要介紹了單線程JavaScript實現(xiàn)異步過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Cropper.js入門之在HTML中實現(xiàn)交互式圖像裁剪

    Cropper.js入門之在HTML中實現(xiàn)交互式圖像裁剪

    這篇文章主要為大家介紹了Cropper.js入門之在HTML中實現(xiàn)交互式圖像裁剪示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • BootStrap的雙日歷時間控件使用

    BootStrap的雙日歷時間控件使用

    這段時間看了下bootstrap的時間控件,發(fā)現(xiàn)使用起來還是很簡單的,趁著有時間的時候整理了一下,特此分享到腳本之家平臺,感興趣的朋友參考下
    2017-07-07
  • 仿京東快報向上滾動的實例

    仿京東快報向上滾動的實例

    下面小編就為大家分享一篇仿京東快報向上滾動的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • js實現(xiàn)鼠標移動到圖片產(chǎn)生遮罩效果

    js實現(xiàn)鼠標移動到圖片產(chǎn)生遮罩效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)鼠標移動到圖片產(chǎn)生遮罩效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • js圖片翻書效果代碼分享

    js圖片翻書效果代碼分享

    這篇文章主要介紹了js實現(xiàn)圖片翻書效果,代碼簡單,效果很棒,感興趣的小伙伴們可以參考一下
    2015-08-08
  • JS實戰(zhàn)篇之收縮菜單表單布局

    JS實戰(zhàn)篇之收縮菜單表單布局

    這篇文章主要介紹了JS實戰(zhàn)篇之收縮菜單表單布局的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12

最新評論