我尽量不重复问题,因为我已经看到一些关于 Douglas Crockford 的 Javascript the Good parts 书的问题/答案
我理解这段代码的大部分内容
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 非常相似,但我仍然没有得到原型(prototype) [name] 部分
感谢任何帮助 谢谢
最佳答案
obj.name
和 obj[name]
是有区别的。
这...
obj.name = 123;
...将值 123
分配给(对象的)“name”
属性。
另一方面,这...
obj[ name ] = 123;
...会将值 123
分配给那些名称等于 name
变量/参数值的属性。
所以:
var name = 'foo';
obj.name = 123;
obj[ name ] = 456;
// And now:
obj.name; // 123
obj.foo; // 456
关于javascript - Function.prototype.method 什么是原型(prototype)[名称],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567655/