【发布时间】:2011-04-27 09:16:21
【问题描述】:
Douglas Crockford 在他的书(第 4 页)中写道:
贯穿全书,method 方法用于定义新方法,这是它的定义:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
然后他开始使用这个method在Number, String, Function, Object, Array, RegExp中添加方法,这里是完整的列表:
P33:
Number.method('integer', function () {...});
String.method('trim', function () {...});
P40(不确定第41页是否有错字:end ()):
String.method('deentityify', function () {...}());
P43 和 P44:
Function.method('curry', function () {...});
P47(这里我一头雾水,不知道Crockford为什么要定义new方法,而且他在书中似乎从来没有使用过new方法):
Function.method('new', function () {...});
P48:
Function.method('inherits', function (Parent) {...});
P54:
Object.method('superior', function (name) {...});
P62:
Array.method('reduce', function (f, value) {...});
P79:
Array.method('pop', function () {...});
Array.method('push', function () {...});
Array.method('shift', function () {...});
P82:
Array.method('splice', function (start, deleteCount) {...});
P84:
Function.method('bind', function (that) {...});
P88:
RegExp.method('test', function (string) {...});
String.method('charAt', function (pos) {...});
P90(不确定第91页是否有错字:end ()):
String.method('entityify', function () {...}());
method的定义是基于Function,为什么除了Function之外还可以在Number, String, Object, Array, RegExp中使用?而这个method可以用于其他数据类型吗?
另一个小问题:在第63和64页中,Array.dim, Array.matrix, Array.identity的定义没有在method上面使用,为什么?
【问题讨论】:
标签: javascript methods