首页 新闻 会员 周边

this.initialize.apply(this) 和this.initialize()区别

0
[待解决问题]
var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}
 var Person = Class.create();
 Person.prototype = {
   initialize: function(name) {
   this.name = name;
     },
   getName: function(prefix) {
     return prefix +this.name;
      }
  };
江苏黑马的主页 江苏黑马 | 菜鸟二级 | 园豆:204
提问于:2012-08-02 09:28
< >
分享
所有回答(2)
0
var Person = Class.create();

即:

var Person = function(){
    this.initialize.apply(this, arguments);
}

假设下,如果不采用 this.initialize.apply(this, arguments) 而采用 this.initialize 该怎么写

var Person = function(){
    this.initialize(arguments[0]);
}

其实上面的写法也是没问题的,再思考下,如果Person.prototype.initialize 所需的参数为 2个或以上,则

var Person = function(){
    this.initialize(arguments[0], arguments[1]);
}

如果参数为3个、4个。。。

说到这里差不多应该明白为什么要用 this.initialize.apply(this, arguments); 这种看上去不直观的写法了 :-)

 

程序猿小卡 | 园豆:386 (菜鸟二级) | 2012-09-12 13:49
0

为了传参方便

乐享程序员 | 园豆:930 (小虾三级) | 2014-04-16 22:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册