您的位置:首页 > 其它

解析对象体内与方法体内引用内部方法的不同

2016-04-02 11:42 309 查看
/*对象体内*/
var a={
init:function(){a.func1();}, //这里要加this或者对象a,但方法体内同等格式不用,思考这其中的差别
func1:function(){alert(1);}
}
a.init(); //执行

/*方法体内*/
function b(){
this.init=function(){func1();}; //这里可以调用到func1,原因在于对象体没有开辟作用域的概念,它自己依赖于自身所在的作用域,所以不能在对象体中直接找到func1.
function func1(){
alert(1);
}

}
new b().init();//执行


  总结,对象体没有开辟作用域的概念,它自己依赖于自身所在的作用域,所以不能在对象体中直接找到func1,需要通过作用域中的自己来找到func1,方法体则会在定义时开辟一段作用域(执行上下文),以供方便获取活动对象。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: