JavaScriptの性質上、ネイティブオブジェクトを完全に書き直すことができます。そうすることで本当の危険があるかどうか知りたいです!
ネイティブJavaScriptオブジェクトの例を次に示します
Object
Function
Number
String
Boolean
Math
RegExp
Array
これらをJava(および他のいくつかのOOP言語)で見られるのと同様のパターンに従ってモデル化し、Objectが一連の基本関数を定義し、他の各オブジェクトがそれを継承するとします(これは明示的に行う必要があります)すべてが自然にオブジェクトから派生する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などのフレームワークがこれに似たアプローチをしていることをどこかで読みましたが、これは正しいですか?