我发现在developer.mozilla.URL网站上显示的许多方法中都没有必要的判断:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
您可以转到“填充”部分。
总是存在像以下代码这样的判断:
Array.prototype.filter = function(fun /*, thisArg */)
{
"use strict";
if (this === void 0 || this === null)
throw new TypeError();
...
}
不仅过滤方法,而且Array.prototype.every(),Array.prototype.map()。
如:
Array.prototype.map = function (fun /*, thisp */) {
if (this === void 0 || this === null) { throw TypeError();
...
}
我不知道在哪种情况下条件的结果将返回true,然后抛出“ TypeError”。
我认为,这种判断不是必需的,应删除。
你怎么看?
这个判断是为了什么?
最佳答案
我不知道在哪种情况下条件的结果会返回
true,然后抛出“ TypeError”。
回答:
Array.prototype.filter = function(fun /*, thisArg */){
console.log('okay',this==null);
}
Array.prototype.filter.call(null);
Array.prototype.filter.call(undefined);
关于javascript - 这个判断在Array.prototype.filter中是否重要,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25604034/