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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

動(dòng)態(tài)原形模式為什么要加if?

動(dòng)態(tài)原形模式為什么要加if?

清風(fēng)流光 2017-04-26 14:06:21
//動(dòng)態(tài)原形模式 function?Person(name,?age,?job){ //屬性 this.name?=?name; this.age?=?age; this.job?=?job; //方法 if?(typeof?this.sayName?!=?"function"){ Person.prototype.sayName?=?function(){ alert(this.name); }; } } var?friend?=?new?Person("Nicholas",?29,?"Software?Engineer"); friend.sayName();?????//這里加不加if語句有什么區(qū)別?下面是我對(duì)其他模式的理解幫我看看有什么問題,多多指正//工廠模式 function?createPerson(name,?age,?job){ var?o?=?new?Object(); o.name?=?name; o.age?=?age; o.job?=?job; o.sayName?=?function(){ alert(this.name); }; return?o; } var?person1?=?createPerson("Nicholas",?29,?"Software?Engineer"); var?person2?=?createPerson("Greg",?27,?"Doctor"); alert(person1.sayName==person2.sayName)?//false?函數(shù)內(nèi)部創(chuàng)建新對(duì)象?相當(dāng)于每次都創(chuàng)建了一個(gè)新函數(shù)//構(gòu)造函數(shù) function?Person(name,?age,?job){ this.name?=?name; this.age?=?age; this.job?=?job; this.sayName?=?function(){ alert(this.name); }; } var?person1?=?new?Person("Nicholas",?29,?"Software?Engineer"); var?person2?=?new?Person("Greg",?27,?"Doctor"); alert(person1==person2);//false??說明這是兩個(gè)對(duì)象?? alert(person1.sayName==person2.sayName);//true??屬性相等??說明外部創(chuàng)建新對(duì)象雖然獨(dú)立?但它們都同時(shí)指向同一個(gè)函數(shù)//原型模式 function?Person(){ } Person.prototype.name?=?"Nicholas"; Person.prototype.age?=?29; Person.prototype.job?=?"Software?Engineer"; Person.prototype.sayName?=?function(){ alert(this.name); }; var?person1?=?new?Person(); var?person2?=?new?Person(); alert(person1.sayName?==?person2.sayName);?//true?每個(gè)函數(shù)都有一個(gè)原型對(duì)象?函數(shù)內(nèi)部的屬性叫對(duì)象屬相?是外部調(diào)用對(duì)象的屬性??而原型對(duì)象屬性函數(shù)本身擁有的屬性?它和函數(shù)本身相互聯(lián)系?外部創(chuàng)建實(shí)例化對(duì)象?可以讀取函數(shù)原型屬性// function?Person(){ } var?friend?=?new?Person(); Person.prototype?=?{ constructor:?Person, name?:?"Nicholas", age?:?29, job?:?"Software?Engineer", sayName?:?function?()?{ alert(this.name);? } }; friend.sayName();?//error?????friend指向的是修改前的地址?修改之后的地址?無法讀取?也就是說原型中的地址不會(huì)被覆蓋// function?Person(){ } Person.prototype?=?{ constructor:?Person, name?:?"Nicholas", age?:?29, job?:?"Software?Engineer", sayName?:?function?()?{ alert(this.name); } }; var?friend?=?new?Person(); friend.sayName();?//Nicholas???????friend指向兩個(gè)地址?修改前和修改后?依次讀取?相同屬性和方法進(jìn)行覆蓋// function?Person(){ } Person.prototype?=?{ constructor:?Person, name?:?"Nicholas", age?:?29, job?:?"Software?Engineer", friends?:?["Shelby",?"Court"], sayName?:?function?()?{ alert(this.name); } }; var?person1?=?new?Person(); var?person2?=?new?Person(); person1.friends.push("Van"); alert(person1.friends?===?person2.friends);?//true?person1和person2讀取的是同一地址的原型?修改的其中一個(gè)的屬性?另一個(gè)也會(huì)發(fā)生改變//組合使用構(gòu)造函數(shù)和原型模式 function?Person(name,?age,?job){ this.name?=?name; this.age?=?age; this.job?=?job; this.friends?=?["Shelby",?"Court"]; } Person.prototype?=?{ constructor?:?Person, sayName?:?function(){ alert(this.name); } } var?person1?=?new?Person("Nicholas",?29,?"Software?Engineer"); var?person2?=?new?Person("Greg",?27,?"Doctor"); person1.friends.push("Van"); alert(person1.friends);?//"Shelby,Count,Van" alert(person2.friends);?//"Shelby,Count" alert(person1.friends?===?person2.friends);?//false?比較的是對(duì)象?false alert(person1.sayName?===?person2.sayName);?//true?比較的是對(duì)象的地址?true
查看完整描述

2 回答

?
西蘭花偉大炮

TA貢獻(xiàn)376條經(jīng)驗(yàn) 獲得超318個(gè)贊

判斷一下吧,如果構(gòu)造器沒有sayname方法,就在原型上添加這樣的一個(gè)方法
查看完整回答
1 反對(duì) 回復(fù) 2017-04-26
?
西蘭花偉大炮

TA貢獻(xiàn)376條經(jīng)驗(yàn) 獲得超318個(gè)贊

這是高級(jí)程序設(shè)計(jì)的吧
查看完整回答
反對(duì) 回復(fù) 2017-04-26
  • 2 回答
  • 0 關(guān)注
  • 2070 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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