ES6及更高版本:
使用static
关键字。它被大多数现代浏览器支持。
class SuperClass {
static init() {
console.log("new class constructed !")
}
}
SuperClass.init();
旧版浏览器:
有不同的方法可以实现。其中一种选择是使用对象字面量。
对象字面量:
var superClass = {
init: function(){
console.log("new class constructed !")
}
};
superClass.init();
https://jsfiddle.net/ckgmb9fk/
然而,您仍然可以使用函数构造器定义一个对象,然后将静态方法添加到“类”中。例如,您可以这样做:
var SuperClass = function(){};
SuperClass.prototype.methodA = function() {
console.log("methodA");
};
SuperClass.init = function() {
console.log("Init function");
}
SuperClass.init();
var sc = new SuperClass();
sc.methodA();
请注意,
init
方法在
SuperClass
实例对象中不可用,因为它不在对象原型中。
https://jsfiddle.net/mLxoh1qj/
扩展原型:
var SuperClass = function(){};
SuperClass.prototype.init = function() {
console.log("Init");
};
SuperClass.prototype.init();
var sc = new SuperClass();
sc.init();
https://jsfiddle.net/0ayct1ry/
如果您想从SuperClass
原型和对象实例中访问函数init
,则此解决方案非常有用。