第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

js 構(gòu)造函數(shù)生成實例對象的疑問

js 構(gòu)造函數(shù)生成實例對象的疑問

郎朗坤 2019-03-14 14:13:49
本人js新手, 最近在學習對象的內(nèi)容的時候遇到了一點小疑問, 如下:個人理解: 每次使用new命令生成實例對象以后, 所有構(gòu)造函數(shù)里面的屬性都會被定義在實例對象上, 也就是說任何兩個實例對象上, 里面的屬性都是不一樣的無法共享, 但是如果那個屬性不是方法, 其似乎還是'一樣的', 看代碼:var Cat = function() {    this.color = 'red'    this.say = function() {        console.log('miao')    }}var c1 = new Cat()var c2 = new Cat()console.log(c1.color === c2.color) // trueconsole.log(c1.say === c2.say) // false對于say這個方法是因為兩個實例對象方法都是不一樣, 這也是為什么要用prototype來興義方法, 但是為什么color這個屬性顯示結(jié)果為true? 同樣作為屬性兩個實例對象在生成的時候應該是不同的, 但是結(jié)果為什么是true?不是特別理解希望能有前輩給予解答, 謝謝!
查看完整描述

3 回答

?
UYOU

TA貢獻1878條經(jīng)驗 獲得超4個贊

C

var Cat = function() {

    this.color = {}; 

    this.say = function() {

        console.log('miao')

    }

}

var c1 = new Cat()

var c2 = new Cat()

P

console.log(c1.color === c2.color); 

console.log({} === {}); 

console.log(123 === 123); 

S

https://img1.sycdn.imooc.com//5c99cc7d0001200702650110.jpg

查看完整回答
反對 回復 2019-03-26
?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

根據(jù)我的理解函數(shù)比較的是在內(nèi)存中的指針,而基本類型僅僅比較值。


查看完整回答
反對 回復 2019-03-26
?
qq_遁去的一_1

TA貢獻1725條經(jīng)驗 獲得超8個贊

樓上說的沒錯,基本類型的比較只比個值,另外字符串在js中是常量,相同值的常量會不會只存儲一份我不是特別清楚,我想說的是,如果兩個變量引用了值相等的兩個字符串,那這兩個字符串可能確實是同一個字符串,他們占用的是同一個存儲空間。

用函數(shù)來構(gòu)造對象,并在構(gòu)造函數(shù)里動態(tài)添加類方法,每次執(zhí)行構(gòu)造函數(shù)都會生成匿名函數(shù)作為類方法,所以每次new出來的對象的同名的方法其實都是占用不同內(nèi)存空間的匿名函數(shù),用==比較它們時,比較的其實是它們的地址,或者說“是否是同一個對象”。而字符串,數(shù)字這些基本類型的數(shù)據(jù),用==比較時,比較的是它們的值,否則你要怎么判斷兩個數(shù)字相等?


查看完整回答
反對 回復 2019-03-26
  • 3 回答
  • 0 關(guān)注
  • 498 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號