码迷,mamicode.com
首页 > 编程语言 > 详细

【笔记】JavaScript编码规范- 构造函数

时间:2015-05-20 09:43:12      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:javascript

在原型对象上定义方法,而不是用新对象重写它。重写使继承变为不可能:重置原型将重写整个基类.

function Jedi() {
console.log('new jedi');
}


// bad
Jedi.prototype = {
fight: function fight() {
console.log('fighting');
},


block: function block() {
console.log('blocking');
}
};


// good
Jedi.prototype.fight = function fight() {
console.log('fighting');
};


Jedi.prototype.block = function block() {
console.log('blocking');
};<strong>
</strong>

关于JavaScript中的prototype可参见 http://www.w3school.com.cn/jsref/jsref_prototype_array.asp

方法应该返回this,有利于构成方法链

// bad
Jedi.prototype.jump = function() {
this.jumping = true;
return true;
};


Jedi.prototype.setHeight = function(height) {
this.height = height;
};


var luke = new Jedi();
luke.jump(); // => true
luke.setHeight(20); // => undefined


// good
Jedi.prototype.jump = function() {
this.jumping = true;
return this;
};


Jedi.prototype.setHeight = function(height) {
this.height = height;
return this;
};


var luke = new Jedi();


luke.jump()
.setHeight(20);

写一个自定义的toString()方法是可以的,只要确保它能正常运行并且不会产生副作用
function Jedi(options) {
options || (options = {});
this.name = options.name || 'no name';
}


Jedi.prototype.getName = function getName() {
return this.name;
};


Jedi.prototype.toString = function toString() {
return 'Jedi - ' + this.getName();
};

Genesis 1:17 And God set them in the firmament of the heaven to give light upon the earth.

【笔记】JavaScript编码规范- 构造函数

标签:javascript

原文地址:http://blog.csdn.net/princeterence/article/details/45866167

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!