我尽量不重复问题,因为我已经看到了一些关于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.prototypename为什么不写成this.prototype.name;我知道返回它允许链接,这里的语法看起来非常类似于jQuery,但我仍然不能得到原型名称部分
如有任何帮助,将不胜感激
发布于 2012-05-13 06:02:14
obj.name和obj[name]是有区别的。
这..。
obj.name = 123;...will将值123赋给(对象的) "name"属性。
另一方面,这..。
obj[ name ] = 123;...will将值123赋值给其名称等于name变量/参数的值的属性。
所以:
var name = 'foo';
obj.name = 123;
obj[ name ] = 456;
// And now:
obj.name; // 123
obj.foo; // 456发布于 2012-05-13 06:01:39
prototype[name]允许name是一个包含任何字符串的变量,并且它将访问由该字符串命名的prototype的属性。prototype.name会查找字面上称为"name“的属性。
[]语法允许您执行以下操作:
for..inarr[123])https://stackoverflow.com/questions/10567655
复制相似问题