gpt4 book ai didi

javascript - 为什么 javascript 静态变量在不创建最少一个实例的情况下无法访问(使用类名)?

转载 作者:行者123 更新时间:2023-11-29 16:33:12 25 4
gpt4 key购买 nike

我正在创建一个如下所示的函数

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) 我会收到类似这样的错误。

VM3676:1 Uncaught TypeError: calculation.mul is not a function at :1:13

但是,var _calc=new calculation(); 创建实例后,我可以访问静态方法。

calculation.mul(2,1) if i try after this, i am getting value `2`.

任何人,请澄清我。谢谢,提前。

最佳答案

因为将 mul 属性分配给 calculation 对象的代码:

calculation.mul=mul;

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))

关于javascript - 为什么 javascript 静态变量在不创建最少一个实例的情况下无法访问(使用类名)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53790651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com