JavaScript中如何访问bind方法绑定到this的搜索空间参数
解决方案
你可以直接通过this关键字访问到bind()传入的搜索空间:Function.prototype.bind()的第一个参数会绑定为目标函数执行时的this值,你将多维数组作为bind的入参传入后,contains函数内部的this就指向这个多维数组。
修正后的完整代码如下:
function contains(cell){ let found = false; const [x, y] = cell; // 直接用this访问绑定的搜索空间 this.forEach((element) => { const [j, k] = element; if (x === j && y === k){ found = true; } }); return found; }
可选优化建议
你可以改用for...of循环实现更高效的匹配,匹配到目标后直接终止遍历,不需要遍历整个搜索空间,同时代码更简洁:
function contains(cell){ const [x, y] = cell; for (const [j, k] of this) { if (x === j && y === k) return true; } return false; }
注意:原代码中解构赋值的变量没有添加
let/const声明,会默认挂载到全局作用域造成污染,修正后的代码已经补充了变量声明。
内容的提问来源于stack exchange,提问作者Brayoni
相关产品推荐
相关产品推荐

