我正在阅读JavaScript - The Good Parts目前。所以我正在处理类型的扩充。 我理解动机和实施。但如果我看一下代码......
Function.prototype.method = function(ident, funct) {
this.prototype[ident] = funct;
return this; // No idea. For what?
};
...然后我不明白返回的目的。 我把评论归来了。这没有效果。无论如何它都起作用了。
我的完整代码:
Function.prototype.method = function(ident, funct) {
this.prototype[ident] = funct;
return this;
};
Date.method('sayHello', function() {
alert(new Date().toString());
});
var myDate = new Date();
myDate.sayHello();
那是什么意思?
答案 0 :(得分:14)
通常这样做是为了你可以链接方法调用,所谓的“流畅的接口”:
obj.method().anotherMethod().yetAnotherMethod()
E.g:
'string'.toUpperCase().substr(2).repeat(3)
如果是字符串,则会在this
时返回另一个新字符串,但您会明白为什么它有用。