hasOwnProperty和ECMAScript 5严格模式

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

要回复问题请先登录注册