我有一个JavaScript类,我想这样做它不能被子类化。 (类似于在Java中使用“final”关键字标记类。)这是我的JavaScript类:
function Car(make, model) {
this.getMake = function( ) { return make; }
this.getModel = function( ) { return model; }
}
答案 0 :(得分:7)
JavaScript面向对象的范例是prototype based,这意味着对象从其他对象“继承”,使用它们作为原型。
没有课程,Car
是constructor function,该语言可让您扩展任何任何对象。
如果你可以创建一个Car
对象实例,则无法阻止该对象被用作其他构造函数的原型。
答案 1 :(得分:1)
鉴于JavaScript甚至实际上没有类(它是基于原型的对象系统,而不是基于类的对象系统),并且它是一种动态语言[1],您想要做的事情是不可能的。此外,JavaScript实际上没有继承/子类 - 它必须通过复制和扩展对象来伪造。没有办法(我知道)阻止其他代码执行此操作。
答案 2 :(得分:0)
你不能直接这样做,并且不知道有一种方法可以做到这一点,因为Javascript的原型继承,但看看Extjs,这是一个面向繁重的面向对象的js框架型式设计。看看api以及更多源代码,你可能会更接近你想去的地方 - 但不是完全的:)