最近在学javascript .闭包有点疑惑。 引用一个例子说明下。
var name="window";
var object={ name:"my object";
getNameFunc:function(){
return funtion(){
retutn this.name;
}
};}alter(object.getNameFun()()); 假设现在在返回 this.name 其值一定是“ my object;”
如果在function 函数在调用 function() 返回this.name 实际上返回的是 this.name.name 或((object.name).name) 但是这个name属性可以说是不存在的或是未定义的。 但是就是不明白怎么回事 “window”;按照继承的观点也是首先继承 其父类 “My object” ;
var name="window";
var object={ name:"my object";
getNameFunc:function(){
return funtion(){
retutn this.name;
}
};}alter(object.getNameFun()()); 假设现在在返回 this.name 其值一定是“ my object;”
如果在function 函数在调用 function() 返回this.name 实际上返回的是 this.name.name 或((object.name).name) 但是这个name属性可以说是不存在的或是未定义的。 但是就是不明白怎么回事 “window”;按照继承的观点也是首先继承 其父类 “My object” ;
解决方案 »
- 能否只获取某个网页里的视频资源
- jquery 弹出下载地址
- 怎样停止尚未执行的setTimeout()方法
- 请教追加table行的问题。
- 郁闷!我这个监听事件究竟哪里错了???火狐和IE都报错
- 学习JavaScript 有什么好建议?
- 求救,搞了两天。显示找不到对象。
- 正则表达"var reg =/(\@[^\@]*){10}$/g; "中,如果其中的10是一个变量怎么办?直接将10写成变量不好用的。
- 关于javascript操作<table>的问题
- 看看错在哪里???字符串转换问题.
- 求百度的分页技术
- 各位求救,限制 ul li中的文字字数,鼠标划过文字显示所有字数和显示的图片和一些描述言文字,
var object={
name:"my object",
getNameFunc:function(){
return function(){
return this.name;
}
}
}
var object2={
name:"my object2",
getNameFunc:function(){
var This=this;
return (function(){
return This.name;
})()
}
}alert(object.getNameFunc()());//object.getNameFunc()只是返回匿名函数 尚未执行 他的执行者 实际上是window 弹出 window1alert(object.getNameFunc().apply(object)) //调用apply 让object类调用匿名函数 则弹出 my objectalert(object2.getNameFunc()) //弹出 my object2 注意this在各层的使用
</script>