JavaScript クラスがあり、サブクラス化できないようにしたいと考えています。(Java で "final" キーワードを使用してクラスをマークするのと同様です。) これが私の JavaScript クラスです。
function Car(make, model) {
this.getMake = function( ) { return make; }
this.getModel = function( ) { return model; }
}
JavaScript クラスがあり、サブクラス化できないようにしたいと考えています。(Java で "final" キーワードを使用してクラスをマークするのと同様です。) これが私の JavaScript クラスです。
function Car(make, model) {
this.getMake = function( ) { return make; }
this.getModel = function( ) { return model; }
}
JavaScript オブジェクト指向パラダイムはプロトタイプ ベースです。つまり、オブジェクトは他のオブジェクトから「継承」し、それらをプロトタイプとして使用します。
クラスはなくCar、コンストラクター関数であり、この言語により、事実上すべてのオブジェクトを拡張できます。
オブジェクト インスタンスを作成できるCar場合、このオブジェクトが他のコンストラクタ関数のプロトタイプとして使用されるのを防ぐ方法はありません。
JavaScript には実際にはクラスがなく (クラスベースではなく、プロトタイプ ベースのオブジェクト システムです)、動的言語であることを考えると [1]、あなたがやりたいことは不可能です。さらに、JavaScript には実際には継承/サブクラス化がありません。オブジェクトをコピーして拡張することで偽装する必要があります。他のコードがこれを行うのを防ぐ方法は (私が知っている限り) ありません。
いいえ、これを直接行うことはできず、Javascript のプロトタイプの継承を考慮してこれを行う方法があることを知りませんが、重いオブジェクト指向型設計を持つ js フレームワークであるExtjsを見てください。APIなどを見て、ソースコードを見ると、行きたい場所に近づくかもしれませんが、完全ではありません:)