Javascript JS:好的部分:superior功能

Javascript JS:好的部分:superior功能,javascript,javascript-objects,Javascript,Javascript Objects,我试图理解Douglas Crockford的“Javascript:好的部分”,第1章“好的部分”,关于继承的一个例子。特别是superior功能。书中内容如下: Object.method('superior', function(name) { var that = this, method = that[name]; return function() { // Why can’t this just be `return method`? return met

我试图理解Douglas Crockford的“Javascript:好的部分”,第1章“好的部分”,关于继承的一个例子。特别是
superior
功能。书中内容如下:

Object.method('superior', function(name) {

  var that = this, method = that[name];
  return function() {
    // Why can’t this just be `return method`?
    return method.apply(that, arguments);
  };
});
正如上面的代码注释中所提到的,我不明白为什么我们需要使用
apply
,因为在我的实验中,简单地返回函数本身似乎是可行的

补充资料 上面使用的
方法
函数定义为

Function.prototype.method = function(name, func) {
  this.prototype[name] = func;
  return this;
};

这确实是一种令人费解的做事方式。一个可能的优点是,生成的函数将自动绑定到初始
上下文(即,您随后可以调用它,而无需引用实例)

我想以下实施将更清楚地揭示其意图:

Object.method(“上级”),函数(名称){
var-that=this,method=that[name];
返回方法.bind(that);
});

(由于
get\u name
方法没有使用
This
上下文,因此下一页的
coolcat
示例中没有直接显示出这种可能的优势。)

这是一些非常复杂的代码。还要注意的是,改变内置对象是一种非常糟糕的做法……我意识到这本书很旧,但我觉得其中描述的一些东西仍然有价值。不管怎么说,只是试着在上下文中理解这个例子。