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; } };
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); 这种看上去不直观的写法了 :-)
为了传参方便