可不可以直接把a(bǔ)lert等方法直接寫在構(gòu)造函數(shù)里?
為什么配置寫在構(gòu)造函數(shù)Window里,而alert等方法寫在Window的Prototype里?可不可以直接把a(bǔ)lert等方法直接寫在構(gòu)造函數(shù)里?
為什么配置寫在構(gòu)造函數(shù)Window里,而alert等方法寫在Window的Prototype里?可不可以直接把a(bǔ)lert等方法直接寫在構(gòu)造函數(shù)里?
2014-11-12
舉報(bào)
2016-03-23
直接把a(bǔ)lert等方法直接寫在構(gòu)造函數(shù)里的話,每個(gè)實(shí)例都需要重新創(chuàng)建構(gòu)造函數(shù)里面的方法,而且每個(gè)實(shí)例里面的方法都不相等,這也算是構(gòu)造函數(shù)模式創(chuàng)建對(duì)象的缺點(diǎn)
2015-11-13
不知道對(duì)不對(duì)=? =
用new生成實(shí)例對(duì)象是無法共享屬性和方法的
var w1=new window();
var w2=new window();
他們的屬性和方法是獨(dú)立的 修改其中一個(gè),不會(huì)影響到另一個(gè)? 是各自本地的屬性.所以寫在構(gòu)造函數(shù)里是對(duì)資源的浪費(fèi)
而 window.prototype中放入的都是可共享的屬性和方法 (原型中的) 當(dāng)修改w1.prototype.屬性或方法 時(shí),w2.prototype.屬性或方法也會(huì)改變
結(jié)論 : 如果寫在構(gòu)造函數(shù)中每次創(chuàng)建實(shí)例都會(huì)生成新的,實(shí)例自身的window().alert()? 浪費(fèi)資源 且 無法共享
2015-06-29
如果只是把a(bǔ)lter的函數(shù)體寫在構(gòu)造函數(shù)里,是可以的,只是調(diào)用方式不同了,我反而覺得會(huì)更方便一點(diǎn):w.Window(cfg); 少一個(gè)alter函數(shù)調(diào)用。因?yàn)槟阋猲ew Window就是為了alert嘛!
但是confirm和prompt是不能定義在構(gòu)造函數(shù)里的,這樣的話在構(gòu)造函數(shù)外部無法調(diào)用。