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函数呢

解决方案 »

  1.   

    var name = function(){ people.show(); }
    name();
      

  2.   

    var name=people.show;
    这个name只是一个函数的引用并不是函数本身所以name();这样是不行的如果你要处罚name所指向的函数最好就是用回调机制用call或者apply都行的去网上好好找找关于回调的文章看看吧,呵呵!
      

  3.   

    var name=people.show;
    name();//执行后this作用于为window,并不是people,this.name就是name变量为函数体
    name.call(people)//更改函数作用于为people就对了
      

  4.   

    楼上正解.
    我这里也提供个方法:
    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()