基本上你想要的是一個靜態方法。有不同的方法來實現這一點。我認爲,使用對象字面值會更容易爲你做。
對象litteral:
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
都該解決方案是非常有用的。
ES6:
這是ES6
class SuperClass {
static init() {
console.log("new class constructed !")
}
}
SuperClass.init();
看看https://stackoverflow.com/questions/9170332/how-is-this-possible-without-instantiating-new-ing-it-var-a-array-prototy –