JavaScript 的本质允许完全重写其原生对象。我想知道这样做是否有任何真正的危险!
以下是本机 JavaScript 对象的一些示例
Object
Function
Number
String
Boolean
Math
RegExp
Array
让我们假设我想对它们进行建模以遵循您可能在 Java(和其他一些 OOP 语言)中找到的类似模式,以便 Object 定义一组基本函数,并且每个其他对象都继承它(这必须明确由用户定义,与 Java 不同,Java 中的一切都自然地派生自对象)
例子:
Object = null;
function Object() {
Object.prototype.equals = function(other) {
return this === other;
}
Object.prototype.toString = function() {
return "Object";
}
Object.equals = function(objA, objB) {
return objA === objB;
}
}
Boolean = null;
function Boolean() {
}
extend(Boolean, Object); // Assume extend is an inheritance mechanism
Foo = null;
function Foo() {
Foo.prototype.bar = function() {
return "Foo.bar";
}
}
extend(Foo, Object);
在这种情况下,Object 和 Boolean 现在有了新的实现。在这方面,可能会发生什么?我可能会进一步破坏事情吗?
编辑:
我在某处读到 MooTools 和 Prototype 等框架有类似的方法,这是正确的吗?