87,910
社区成员
发帖
与我相关
我的任务
分享
<script type="text/javascript" language="javascript">
var value = 0;
var god = {
value: 1,
method: function(){
var value = 2;
var innerObj = {//问题1 这个中括号神马意思,相当于一个类名么?里面装变量,方法?
value: 3,
innerMethod: function(){
var value = 4;
var that = this;
var anotherMethod = function(){
alert(that.value);//这个等价于1处 值为3
alert(this.value);//这个是0 ,this指的是window
alert(value); //这个等价于2处 值为4 问题2 不理解咩是闭包函数?
}
anotherMethod();
alert(this.value); //1处 问题3 这里的this为神马指到了上面的3,不是4?
alert(value); //2处 值为4
}
};
innerObj.innerMethod();
alert(this.value); // 值为1 这个跟上面是一个道理
alert(value); // 值为2 这个也是跟上面一个道理
},
method2: function(){
var value = 5;
alert(this.value);
alert(value);
return function(){
alert(this.value);
alert(value);
};
}()//这个括号是自己创建完就执行自身
};
god.method();
god.method2(); //问题4 这个方法可以得到值 0 5 1 5 解释?
</script>
var value = 0;
var obj = {
value: 1,
method: function() {
var handler = function() {
alert(this.value);
};
// 0
handler();
}
};
obj.method();
var value = 0;
var obj = {
value: 1,
method: function() {
this.handler = function() {
alert(this.value);
};
// 1
this.handler();
}
};
obj.method();
<script type="text/javascript" language="javascript">
var value = 0;
var god = {
value: 1,
method: function(){
var value = 2;
var innerObj = {//这是一个对象,并不是类
value: 3,
innerMethod: function(){
var value = 4;
var that = this;
var anotherMethod = function(){
alert(that.value);//这个等价于1处 值为3
alert(this.value);//这个是0 ,this指的是window
alert(value); //这里是4很合逻辑啊,有什么不对吗?
}
anotherMethod();
alert(this.value); //这里的this指的是god这个对象,对象的value属性是3啊
alert(value); //你上面不是声明了 value=4吗
}
};
innerObj.innerMethod();
alert(this.value); // 值为1 这个跟上面是一个道理
alert(value); // 值为2 这个也是跟上面一个道理
},
method2: function(){
var value = 5;
alert(this.value); //window的value
alert(value); // 上面声明的value
return function(){
alert(this.value); //god以象的value
alert(value); //闭包的value
};
}()//这个括号是自己创建完就执行自身
};
god.method();
god.method2(); //问题4 这个方法可以得到值 0 5 1 5 解释?
</script>