node.js - 關(guān)于你不知道的JavaScript上一書(shū)介紹的行為委托
問(wèn)題描述
https://github.com/getify/You...
這本書(shū)認(rèn)為對(duì)象關(guān)聯(lián)風(fēng)格比面向?qū)ο?原型)風(fēng)格更好,書(shū)中也表示不支持ES6的class語(yǔ)法,但平時(shí)好像還是用面向?qū)ο箫L(fēng)格較多,該如何選擇呢?
面向?qū)ο箫L(fēng)格:
function Foo(who) { this.me = who;}Foo.prototype.identify = function() { return 'I am ' + this.me;};function Bar(who) { Foo.call( this, who );}Bar.prototype = Object.create( Foo.prototype );Bar.prototype.speak = function() { alert( 'Hello, ' + this.identify() + '.' );};var b1 = new Bar( 'b1' );var b2 = new Bar( 'b2' );b1.speak();b2.speak();
對(duì)象關(guān)聯(lián)風(fēng)格:
var Foo = { init: function(who) {this.me = who; }, identify: function() {return 'I am ' + this.me; }};var Bar = Object.create( Foo );Bar.speak = function() { alert( 'Hello, ' + this.identify() + '.' );};var b1 = Object.create( Bar );b1.init( 'b1' );var b2 = Object.create( Bar );b2.init( 'b2' );b1.speak();b2.speak();
問(wèn)題解答
回答1:如何看待《你不知道的js》中倡導(dǎo)的編程風(fēng)格?
我覺(jué)得賀老師的回答說(shuō)的挺好的。
回答2:個(gè)人覺(jué)得,強(qiáng)迫癥選委托,沒(méi)強(qiáng)迫癥選面向?qū)ο蟀?。作者?yīng)該是個(gè)眼里融不進(jìn)一點(diǎn)沙的強(qiáng)迫癥,對(duì)class帶來(lái)的個(gè)別問(wèn)題特別抵觸。選擇哪種方式完全是個(gè)人的喜好,不管選哪種,了解其本質(zhì)還是基于原型鏈才是重點(diǎn)。個(gè)人以前做java的,輕度強(qiáng)迫癥,所以還比較能接受class ^_^
回答3:如何寫(xiě)代碼,當(dāng)然是一件很個(gè)人的事情,與你的習(xí)慣和喜好有關(guān)。不過(guò)我認(rèn)為是有一些基本原則作為參考的:
提高開(kāi)發(fā)效率
降低出錯(cuò)率3.易于閱讀和理解
滿(mǎn)足這三點(diǎn)的方式就是好的方式,違背這三點(diǎn)而強(qiáng)行堅(jiān)持某種方式就是不值得提倡的。
選擇怎么寫(xiě)代碼,不如都試試,然后按這三條原則對(duì)比一下,不必因?yàn)槟硞€(gè)人怎么說(shuō)就非要怎么樣嘛。
相關(guān)文章:
1. javascript - react+百度地圖2. html5 - iOS的webview加載出來(lái)的H5網(wǎng)頁(yè),怎么修改html標(biāo)簽select的樣式字體?3. vue.js - vue+webpack+vue-router 部署到nginx服務(wù)器下,非根目錄,前后端怎樣配置文件?4. javascript - 為什么當(dāng)index等于5的時(shí)候,不在當(dāng)前頁(yè)面跳轉(zhuǎn)到百度?不跳轉(zhuǎn)的代碼在倒數(shù)第五行5. angular.js - 關(guān)于angular react vue 我們?cè)谑裁磳?shí)際的開(kāi)發(fā)項(xiàng)目中使用?如何選擇?6. 手動(dòng)啟動(dòng)mysql服務(wù)出錯(cuò),1067錯(cuò)誤,如何解決呢?7. index.php錯(cuò)誤,求指點(diǎn)8. 這是什么情況???9. 請(qǐng)教一條mysql的sql語(yǔ)句寫(xiě)法;10. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤
