var obj1 = {
func:function(){
this.func();
obj1.func();
}
}
var obj2 = {
func:function(){
this.func();
obj1.func();
}
}
这样写 你能看出区别了把
解决方案 »
- options 为空或不是对象(高手速度来结贴)
- 【着急啊】如何判断一个element是否被聚焦?
- js函数包含另一个js的问题
- 字符串"True"怎样转化为布尔值的true?
- 请问大家,如何在文本框中,输入一个文本 就会触发事件...
- 使用 Javascript Obfuscator 时候,为什么不能更改函数名和变量名???
- 新手关于node.js的疑问
- 这样怎会死循环呢?
- 为什么js的函数在html中能直接调用,而php,asp等都要在<??>或<%%>中进行呢?
- 怎样让,<input type=file>使用默认值
- 求教,帮看下这个JS控制FLASH播放的域名问题
- Ext.grid.EditorGridPanel 表格自适应高度问题。
var aaa = {fa: obj.fun};
同一个函数(方法),其中的this指向和就是aaa对象了
obj.fun() 是指调用 obj 对象上的 fun() 方法,这里的 fun() 作为 obj 对象的方法调用,是确定的。
举个栗子,var obj = {
'st': function() {},
'tt': {},
'name': 'jjj',
'fun': function () {
var _this = this;
_this.fun();
obj.fun();
}
};var obj2 = obj;
obj = {
'fun': function () {
alert("我是修改后的 obj 对象的 fun 方法");
}
}
obj2.fun();
这段代码里,最后一条调用语句, obj2.fun(); 执行后,该函数里面的两个对象方法调用中,
_this.fun() 和 obj.fun() 调用的 fun 方法是不一样的,
_this.fun() 指的是 obj2.fun() ,即这个函数会一直自己调用自己,造成死循环。
而 obj.fun() 的执行 会 alert,不过由于上一条语句的原因,该函数永远也不会执行。