node.js - 关于你不知道的JavaScript上一书介绍的行为委托
问题描述
https://github.com/getify/You...
这本书认为对象关联风格比面向对象(原型)风格更好,书中也表示不支持ES6的class语法,但平时好像还是用面向对象风格较多,该如何选择呢?
面向对象风格:
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();
对象关联风格:
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();
问题解答
回答1:如何看待《你不知道的js》中倡导的编程风格?
我觉得贺老师的回答说的挺好的。
回答2:个人觉得,强迫症选委托,没强迫症选面向对象吧。作者应该是个眼里融不进一点沙的强迫症,对class带来的个别问题特别抵触。选择哪种方式完全是个人的喜好,不管选哪种,了解其本质还是基于原型链才是重点。个人以前做java的,轻度强迫症,所以还比较能接受class ^_^
回答3:如何写代码,当然是一件很个人的事情,与你的习惯和喜好有关。不过我认为是有一些基本原则作为参考的:
提高开发效率
降低出错率3.易于阅读和理解
满足这三点的方式就是好的方式,违背这三点而强行坚持某种方式就是不值得提倡的。
选择怎么写代码,不如都试试,然后按这三条原则对比一下,不必因为某个人怎么说就非要怎么样嘛。
相关文章:
1. vim - docker中新的ubuntu12.04镜像,运行vi提示,找不到命名.2. javascript - vue生成一维码?求助!!!!!急3. angular.js - angularjs 怎么封装 upload 上传4. macos - mac下docker如何设置代理5. 绝对定位和fied定位,键盘弹起对布局的影响6. javascript - H5页面怎么查看console信息?7. nginx英文文档的WebSocket proxying部分没看太明白,麻烦推荐一点中文文章8. docker内创建jenkins访问另一个容器下的服务器问题9. angular.js - items.query is not a function这是怎么回事10. android 文件File删除问题
