var people={
name:'huanqingdong',
age:24,
sex:'boy',
show:function (){
alert(this.name+this.age+this.sex);
}
}
var name=people.show;
name();
这段代码 居然是弹出function (){
alert(this.name+this.age+this.sex);
}
这段内容求解释 ,我如何通过那么去执行show函数呢
name:'huanqingdong',
age:24,
sex:'boy',
show:function (){
alert(this.name+this.age+this.sex);
}
}
var name=people.show;
name();
这段代码 居然是弹出function (){
alert(this.name+this.age+this.sex);
}
这段内容求解释 ,我如何通过那么去执行show函数呢
name();
这个name只是一个函数的引用并不是函数本身所以name();这样是不行的如果你要处罚name所指向的函数最好就是用回调机制用call或者apply都行的去网上好好找找关于回调的文章看看吧,呵呵!
name();//执行后this作用于为window,并不是people,this.name就是name变量为函数体
name.call(people)//更改函数作用于为people就对了
我这里也提供个方法:
var people={
name:'huanqingdong',
age:24,
sex:'boy',
show:function (){
var self = this;
return function(){
alert(self.name+self.age+self.sex);
}
}}var handler = people.show();
handler()