新聞中心
今天小編給大家分享一下javascript構(gòu)造方法的缺點有哪些的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯(lián)建站主營桃山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),桃山h5小程序開發(fā)搭建,桃山網(wǎng)站營銷推廣歡迎桃山等地區(qū)企業(yè)咨詢
JavaScript構(gòu)造方法的缺點是每次實例化一個對象,都會把屬性和方法復(fù)制一遍;如果實例之間有相同的方法,雖然構(gòu)造函數(shù)中定義的屬性和方法是可以訪問的,但是每個實例都被復(fù)制了,這樣會造成系統(tǒng)資源的浪費。
本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。
javascript構(gòu)造方法的缺點是什么
優(yōu)點就是能夠通過instanceof識別對象,缺點是每次實例化一個對象,都會把屬性和方法復(fù)制一遍
function CreateObj(uName) { this.userName = uName; this.showUserName = function () { return this.userName; } } var obj1 = new CreateObj('ghostwu'); var obj2 = new CreateObj('衛(wèi)莊'); console.log( obj1.showUserName === obj2.showUserName ); //false
從以上執(zhí)行結(jié)果,可以看出obj1.showUserName和obj.showUserName不是同一個【在js中,引用類型比較的是地址, 函數(shù)是一種引用類型】,而是存在兩個不同
的內(nèi)存地址,因為每個對象的屬性是不一樣的,這個沒有什么問題,但是方法執(zhí)行的都是一樣的代碼,所以沒有必要復(fù)制,存在多份,浪費內(nèi)存.這就是缺點
擴展知識
構(gòu)造函數(shù):如用函數(shù)用來初始化(使用new運算符)一個新建的對象,我們稱之為構(gòu)造函數(shù)(constructor)
function Person(){ this.name = "zqq"; this.age = 28; } var p = new Person();
當(dāng)以new調(diào)用構(gòu)造函數(shù)(執(zhí)行var p = new Person())時,函數(shù)內(nèi)部會發(fā)生以下情況:
1.創(chuàng)建一個空對象
var p = {};
2.this變量指向?qū)ο髉
Person.call(p)
3.p繼承了構(gòu)造函數(shù)Person()的原型
p.__proto__ = Person.prototype
4.執(zhí)行構(gòu)造函數(shù)Person()內(nèi)的代碼
構(gòu)造函數(shù)和普通函數(shù)的區(qū)別:
1.構(gòu)造函數(shù)使用new關(guān)鍵字調(diào)用;普通函數(shù)不用new關(guān)鍵字調(diào)用;
var p = new Person(); var p = Person();
2.構(gòu)造函數(shù)內(nèi)部可以使用this關(guān)鍵字;普通函數(shù)內(nèi)部不建議使用this,因為這時候this指向的是window全局對象,這樣無意間就會為window添加了一些全局變量或函數(shù)
在構(gòu)造函數(shù)內(nèi)部,this指向的是構(gòu)造出來的新對象
在普通函數(shù)內(nèi)部,this指向的是window全局對象
3.構(gòu)造函數(shù)默認(rèn)不用return返回值;普通函數(shù)一般都有return返回值
構(gòu)造函數(shù)會默認(rèn)返回this,也就是新的實例對象
普通函數(shù)如果沒有return值的話,返回undefined
如果使用了return,那返回值會根據(jù)return值的類型而有所不同
以上就是“javascript構(gòu)造方法的缺點有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞標(biāo)題:javascript構(gòu)造方法的缺點有哪些
網(wǎng)頁地址:http://www.ef60e0e.cn/article/jijhss.html