function ZoomPic () { this.initialize.apply(this, arguments) } ZoomPic.prototype = { initialize : function (id){} }
看了一些别的资料,还是不是很清楚this.initialize.apply(this, arguments)这句话的含义,还有initialize : function (id)为什么不写成initialize = function (id)
看来你的认知跟不上。
{ initialize : function (id){} }这是一个js对象{key:value}
initialize.apply(this, arguments);//这里跟initialize(argument),唯一的差别是指定了initialize这个方法体内的this为调用ZoomPic方法的对象。
那如果是initialize(argument)的话该怎么理解呢,是initialize它体内所有的对象都可以调用吗
@Yhspehy: 其实arguments也是一个内置对象,方法体里的,表示参数数组。
initialize();//这样不传参数调用这个方法应该懂吧
initialize('10000');//这里传了一个字符串为'10000'的参数,因为你的initialize方法里面没有任何代码所以,执行了也没什么效果。你可以在方法体里写alert(id);//这样就是看出效果。
@jasondyoung: 懂了,谢谢啦
ZoomPic.prototype = { initialize : function (id){} }
//上面代码也可以这样写
ZoomPic.prototype.initialize = function (id){}//完全没问题,只是用js对象{key:value},如果绑定很多属性的话,结构非常好看。