[英]hasOwnProperty and ECMAScript 5 strict mode
我很好奇:有人知道为什么ECMAScript5规范没有在严格模式下收紧预定义对象原型的属性吗? 例如,似乎没有关于hasOwnProperty的定义方式的信息。 我已经尝试重新定义它(并测试了FF4 beta中的代码),我能够侥幸逃脱。 如果我没有做错任何事情,那么这意味着任何人仍然可以重新定义Object.prototype.hasOwnProperty属性并真正搞砸所有依赖它的代码来处理工作属性......
这个想法?
编辑:当我挖掘规范时更多信息......
正如我在下面添加注释,由于应用于它的元数据(可写,可枚举和可配置都设置为false)和FF 4 beta(我,因此无法在严格模式下真正更改Object.prototype “用来运行我的测试”确实会产生异常。
谢谢。
和? 如果我Object.prototype
话,我可以杀死Object.prototype
上的所有东西,不要在你的项目/网站中包含这样的代码,不要做更好的事情,找到那些正在做这些事情的白痴,并确保踢球。
我的意思是,我甚至可以通过执行True = False
来搞砸任何给定的Python(2.x)程序。
你永远无法抵御白痴。 决不。 尽量教育或避免它们。
编辑
为了澄清这种情况的不可能性,如果将脚本封装到匿名包装器中(如果将其与其他代码一起使用,则应该这样做), "use strict"
将是代码本地的。
这意味着,如果邪恶的白痴代码本身不使用严格的模式 - 他们不会......除非他们是完全白痴,我在这里不谈论 - 他们在ES3中运行,你的美丽严格不会甚至存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.