繁体   English   中英

Array.prototype 被覆盖

[英]Array.prototype is overriden

问题是我的代码在假设数组原型 object 不会被第一方、第三方或浏览器扩展代码修改的假设下工作。 这是在 JavaScript 中无法做出的危险假设,它导致了可避免的 CSO。 在这种情况下,我如何对代码进行防弹以防止其破坏?

这是 Javascript 的本质。 如果你想确保某些东西没有被覆盖,你必须在使用它之前测试预期的行为。 假设您正在使用Array.prototype.push 检查它的行为,如果它不像预期的抛出错误那样工作。

var arr = [1, 2];
arr.push(3);
if (arr[2] !== 3) {
   throw "Push function is overriden!";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM