【发布时间】:2012-02-22 15:41:37
【问题描述】:
是否可以从原型中杀死所有非原始扩展,例如array.each、array.map、function.bind等?
This question 声明没有 noConflict 版本,但我不打算收回 $。我想删除原型对宿主对象所做的一切。
【问题讨论】:
-
原型是相当自我参照的。我认为这是不可能的。
-
我也不这么认为,但我想问也无妨。
是否可以从原型中杀死所有非原始扩展,例如array.each、array.map、function.bind等?
This question 声明没有 noConflict 版本,但我不打算收回 $。我想删除原型对宿主对象所做的一切。
【问题讨论】:
有一个非常简单的方法可以做到这一点:根本不包括原型。这几乎是唯一的解决方案。
【讨论】:
在这种情况下,Prototype 的 Array.prototype 方法被删除。它被重置为默认值。对您要重置的任何其他内容(功能等)执行相同操作
for(var i in Array.prototype)
delete Array.prototype[i]
【讨论】: