我在prototype
类上编写了Array
函数,如
Array.prototype.myfunc = () =>
{
// ...
}
当我在像这样的数组上调用它时,并且正文this
中指的是window
var result = [1, 69, -1, 1].myfunc();
如何让它引用调用它的数组?
答案 0 :(得分:3)
() => { }
箭头语法绑定到当前this
,可能是window
(取决于您分配函数的时间)。
答案 1 :(得分:1)
ES6中的胖箭头语法是对当前范围的隐式绑定。
如果您当前的范围是Window
(或全局范围),那么您在原型上设置的函数将绑定到该范围。
你还需要好的经历。没有绑定的行为的function ()
语法。
答案 2 :(得分:1)
这里不使用箭头功能,箭头功能从父范围继承上下文。
IF (new.Value <> old.Value AND old.Value IS NOT NULL) THEN
CALL raise_error;
END IF;
答案 3 :(得分:0)
造成问题的原因是使用箭头功能。
在箭头功能中, this
关键字可能会引用:
要解决您的问题,您必须使用&#34;正常&#34; function()
您可以使用 call(this, ...params)
:
this
中,您将要关联的对象this
绑定到和..args
中,您设置了您的功能 。因此,考虑到上述情况,您的代码可以如下所示:
Array.prototype.myfunc = function(...) {
// Your code
}
var array = [1, 69, -1, 1];
var result = myfunc.call(array, ...);
array
作为 call()
中的第一个参数,绑定 this
关键字到 array
。