亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js,使用函數過程中,寫不寫new的區別 ?

js,使用函數過程中,寫不寫new的區別 ?

C++
qq_遁去的一_1 2019-01-29 11:07:35
js,使用函數過程中,寫不寫new的區別 
查看完整描述

2 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

  1. new聲明的是一個對象,而不是函數 而直接寫函數,那就不是對象,是無法調用對象的屬性的。

  2. 如果不new,直接調用YourFunc,不做對象的初始化;

    如果new,先初始化一個對象,然后調用YourFunc作為初始化函數。

    初始化對象的時候,會把所有YourFunc.prototype的屬性方法,copy一份給這個對象;意味著你在YourFunc里面如果調用this.a this.b this.c this.sayHello,都已經被初始化過一次了。


查看完整回答
反對 回復 2019-03-10
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

123456789101112131415161718function YourFunc(){    // beginning of YourFunc'code    if(this instanceof YourFunc){        document.title = "You called [YourFunc] as Class's constructor";                this.sayHello();    }else{        document.title = "You called [YourFunc] as just a Function";    }    // ending of YourFunc's code}YourFunc.prototype={    a : 0,    b : [],    c :{}};YourFunc.prototype.sayHello=function(){    document.title = "hello" + document.title;};

區別是如果不new,直接調用YourFunc,不做對象的初始化;

如果new,先初始化一個對象,然后調用YourFunc作為初始化函數。

初始化對象的時候,會把所有YourFunc.prototype的屬性方法,copy一份給這個對象;意味著你在YourFunc里面如果調用this.a this.b this.c this.sayHello,都已經被初始化過


查看完整回答
反對 回復 2019-03-10
  • 2 回答
  • 0 關注
  • 678 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號