首页 新闻 会员 周边

this.initialize.apply(this, arguments)这句话的含义

0
[已解决问题] 解决于 2016-12-11 14:00

 

function ZoomPic ()
{
    this.initialize.apply(this, arguments)    
}
ZoomPic.prototype = 
{
    initialize : function (id){}
}
    
           
        

看了一些别的资料,还是不是很清楚this.initialize.apply(this, arguments)这句话的含义,还有initialize : function (id)为什么不写成initialize = function (id)

Yhspehy的主页 Yhspehy | 菜鸟二级 | 园豆:232
提问于:2016-12-11 10:19
< >
分享
最佳答案
0

看来你的认知跟不上。

{ initialize : function (id){} }这是一个js对象{key:value}

initialize.apply(this, arguments);//这里跟initialize(argument),唯一的差别是指定了initialize这个方法体内的this为调用ZoomPic方法的对象。

奖励园豆:5
jasondyoung | 菜鸟二级 |园豆:424 | 2016-12-11 13:48

那如果是initialize(argument)的话该怎么理解呢,是initialize它体内所有的对象都可以调用吗

Yhspehy | 园豆:232 (菜鸟二级) | 2016-12-11 13:53

@Yhspehy: 其实arguments也是一个内置对象,方法体里的,表示参数数组。

initialize();//这样不传参数调用这个方法应该懂吧

initialize('10000');//这里传了一个字符串为'10000'的参数,因为你的initialize方法里面没有任何代码所以,执行了也没什么效果。你可以在方法体里写alert(id);//这样就是看出效果。

jasondyoung | 园豆:424 (菜鸟二级) | 2016-12-11 13:58

@jasondyoung: 懂了,谢谢啦

Yhspehy | 园豆:232 (菜鸟二级) | 2016-12-11 14:00

ZoomPic.prototype = { initialize : function (id){} }

//上面代码也可以这样写

ZoomPic.prototype.initialize  = function (id){}//完全没问题,只是用js对象{key:value},如果绑定很多属性的话,结构非常好看。

jasondyoung | 园豆:424 (菜鸟二级) | 2016-12-11 14:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册