TypeError: 'this' не ÑвлÑеÑÑÑ Set обÑекÑом (EdgE) TypeError: Function.prototype.toString вÑзÑваеÑÑÑ Ð½ÐµÑовмеÑÑимÑй обÑÐµÐºÑ (Firefox) TypeError: Function.prototype.bind вÑзÑваеÑÑÑ Ð½ÐµÑовмеÑÑÐ¸Ð¼Ð°Ñ ÑÐµÐ»Ñ (Firefox) TypeError: ÐеÑод Set.prototype.add called вÑзÑваеÑÑÑ Ð½ÐµÑовмеÑÑимÑй пÑиÑмник undefined (Chrome) TypeError: Bind должен вÑзÑваÑÑÑÑ Ð´Ð»Ñ ÑÑнкÑии(Chrome)Тип оÑибки ЧÑо поÑло не Ñак?
ÐÑи возникновении ÑÑой оÑибки вÑзÑваеÑÑÑ ÑÑнкÑÐ¸Ñ (Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ обÑекÑа) Ñ Ñипом this, не ÑооÑвеÑÑÑвÑÑÑим ÑипÑ, Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð¼Ñ ÑÑнкÑией.
ÐÑа пÑоблема Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð¿Ñи иÑполÑзовании Function.prototype.call()
ил Function.prototype.apply()
меÑÐ¾Ð´Ñ Ð¸ пÑедоÑÑавление аÑгÑменÑа this, коÑоÑÑй не Ð¸Ð¼ÐµÐµÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð³Ð¾ Ñипа.
ÐÑа пÑоблема Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð¿Ñи пÑедоÑÑавлении ÑÑнкÑии (Ñ
ÑанÑÑейÑÑ Ð² обÑекÑе) в каÑеÑÑве аÑгÑменÑа дÑÑгой ÑÑнкÑии. Ð ÑÑом ÑлÑÑае обÑÐµÐºÑ Ð½Ðµ бÑÐ´ÐµÑ ÑелÑÑ this ÑÑнкÑии. ЧÑÐ¾Ð±Ñ Ð¾Ð±Ð¾Ð¹Ñи ÑÑÑ Ð¿ÑоблемÑ, необÑ
одимо либо пÑедоÑÑавиÑÑ Ð»Ñмбда-код, коÑоÑÑй вÑполнÑÐµÑ Ð²Ñзов, либо иÑполÑзоваÑÑFunction.prototype.bind()
ÑÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÑинÑдиÑелÑной пеÑедаÑи аÑгÑменÑа this Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ.
var mySet = new Set();
["bar", "baz"].forEach(mySet.add);
// mySet.add is a function, but "mySet" is not captured as this.
var myFun = function () {
console.log(this);
};
["bar", "baz"].forEach(myFun.bind);
// myFun.bind is a function, but "myFun" is not captured as this.
ÐÑавилÑнÑе
var mySet = new Set();
["bar", "baz"].forEach(mySet.add.bind(mySet));
// This works due to binding "mySet" as this.
var myFun = function () {
console.log(this);
};
["bar", "baz"].forEach((x) => myFun.bind(x));
// This works using the "bind" function. It creates a lambda forwarding the argument.
СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4