有人可以解释为什么以下代码会在Invalid left hand assignment
this = evt.target;
错误
validateNumber: function( evt ) {
this = evt.target;
if (/\D/g.test(el.value)) {
// Filter non-digits from input value.
el.value = el.value.replace(/\D/g, '');
}
},
更新
之前我使用this
代替el
。将this
替换为el
后,它可以正常工作。
答案 0 :(得分:5)
您无法直接分配到this
。这是不允许的。
您的问题中没有使用 this
的代码,所以我不确定您要做什么,但是如果您想强迫this
成为你可以做的一个值,如:
(function() {
if (/\D/.test(el.value)) {
// ...
}
}).call(evt.target);
这将确保this
在匿名函数内的代码中具有evt.target
的值。我无法想到任何重要的正常情况,因为除了不可分配this
之外,其他变量就像任何其他变量一样。就是这样的事情
var whatever = evt.target;
给你一些与this
一样有用的东西。
答案 1 :(得分:2)
您无法指定此内容。使用函数调用或应用。例如,要使用obj作为this指针调用方法func,请执行:
func.apply(obj, args);