【发布时间】:2012-05-12 21:50:34
【问题描述】:
我显然试图不重复问题,因为我已经看到了一些关于 Douglas Crockford 的 Javascript the Good part book 的问题/答案
我了解大部分代码
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Function.method('inherits', function (Parent) {
this.prototype = new Parent( );
return this;
});
var Mammal = function (name) {
this.name = name;
}.method('get_name', function () {
return this.name;
}).method('says', function() {
return this.saying || '';
});
var Cat = function (name) {
this.name = name;
this.saying = 'meow';
}.inherits(Mammal)
var myCat = new Cat('bagsley');
myCat.get_name();
我遇到的问题是 this.prototype[name] 为什么不写成 this.prototype.name;我知道返回它允许链接,这里的语法看起来与 jQuery 非常相似,但我仍然没有得到原型 [名称] 部分
感谢任何帮助 谢谢
【问题讨论】:
-
它将参数分配给一个新对象,这就是为什么不能使用点符号。
-
@elclanrs 不,不能使用点表示法,因为属性名称是动态字符串。
-
是的,我就是这么想的,只是表达了我自己的错误。
name是一个字符串
标签: javascript oop prototype