解决方案 »
- zDialog在iFrame中报错
- ECMA262深入浅出
- 多幅图片交替变换的效果,为什么同样的代码在有的机器上能正常显示在有的机器上显示不出来?代码如下:
- 怎样让我们伟大的IE做出鼠标经过后改变背景颜色!!!!
- 这个函数该怎么修改呢?
- 垃圾csdn! 一帮高手中的垃圾在刷分玩!有意思吗?
- 请教一个日期选择控件不能完全显示的问题
- IE和FIRFOX的不同,document设置属性的问题~
- 有没有办法来控制<select>弹出的下拉列表的高度
- 如何判断哪一个文本框被选中
- 请问jquery easyui datagrid detailview获取datagrid 的index
- 怎么让iframe里面的视频自动播放?
var object = {
b : "M",
getB: function(){
var me = this;
return function(){ return me.b; };
}
}; 这样是符合你要求的代码 你看下应该能理解了
第二个返回getB后环境变成window,就返回全局变量b了
IF、FOR、WHILE、JSON等等的都沒有作用域
如果这个function运行的时候 里面又调用了一个function 那么嵌套 又产生了一个 context如果你声明了 var a = '100';
相当于
当前 context.a = 100;最外面 的context 就是 window
不可能存在 脱离context的 变量那么 你的代码 return a; 被执行的时候 会从当前的context开始查找 a
没有 则从当前context的外层context 查找 (一直查找到 window)上面 是你的 第一段代码 涉及的 概念
var object = {
b : "M",
getB: function(){
return function(){ return b; };
}
}; 这个比较复杂
根据第一段 概念
object 这个变量 存在于 context中所以你 return object 是可以的
但是 b 存在于 object 下面所以你 必须 访问 object.b因为 外面引用的是 object.getB
所以 object,getB 中的this 表示 object
var me = this; 相当于 me = object;然后 return me.b ==== return object.b