我正在创建一个像下面的功能
function calculation(){
this.add=function(x,y){
return x+y;
}
calculation.sub=function(x,y){
return x-y; //static method
};
function mul(x,y){
return x*y; //static method
}
calculation.mul=mul;
}
声明此方法后,如果像这样的
calculation.mul(2,1)
调用,则会收到类似的错误。但是,在创建实例后使用
var _calc=new calculation();
,我可以访问静态方法。calculation.mul(2,1) if i try after this, i am getting value `2`.
有人请澄清一下谢谢,提前。
最佳答案
因为将mul
属性分配给calculation
对象的代码:
…在calculation
函数内部。因此,它仅在调用calculation
函数时运行。
如果您不希望它那样工作,请将其移到外面。
function calculation() {
this.add = function(x, y) {
return x + y;
}
calculation.sub = function(x, y) {
return x - y; //static method
};
}
function mul(x, y) {
return x * y; //static method
}
calculation.mul = mul;
console.log(calculation.mul(2, 1))