0
我有一个这样的对象:“无效分配左侧”错误:firefox还是chrome?
var myObj = {
someProp: 1,
updateObj: function (obj) {this = obj;}
}
所以我得到的含firefox
的功能就行了invalid assignment left hand side
但不是在铬。所以我想知道我应该选择哪一个?
谢谢。
我有一个这样的对象:“无效分配左侧”错误:firefox还是chrome?
var myObj = {
someProp: 1,
updateObj: function (obj) {this = obj;}
}
所以我得到的含firefox
的功能就行了invalid assignment left hand side
但不是在铬。所以我想知道我应该选择哪一个?
谢谢。
使用像“自我”而不是这个。你正试图分配给'这'是不允许的。
var myObj = {
someProp: 1,
updateObj: function (obj) {self = obj;}
}
如果你实际上是试图改变什么对象是,只是重新分配它...
var obj = {
someProp: 1
};
obj = {
someProp: 2
};
...或不喜欢一个更明确的更新:
var obj = {
someProp: 1,
updateObj: function(obj) {
this.someProp = obj.someProp;
}
};
'self'是'window'的同义词,请使用'var'来避免冲突。 – Teemu
'这是一个预定义的关键字,你不能重新定义它。铬也给出了相同的错误,因为任何其他浏览器将... – Teemu
我只注意到,铬也给这个错误,当我实际上调用函数,但不是为了声明。 –
是的,浏览器分析代码的方式不同,有些会在使用前检查语法(每次使用时都会分析一个字面对象)。 – Teemu