Javascript 如何仅在调用函数时使用该函数?

Javascript 如何仅在调用函数时使用该函数?,javascript,Javascript,对不起,我不能确切地解释这个问题,所以我给你举个例子 window.onload = function() { var obj = new classs(2); alert(obj.x2); function classs(value){ this.value = value; var multiplication = function(value, n){ console.log(n);

对不起,我不能确切地解释这个问题,所以我给你举个例子

window.onload = function() {
    var obj = new classs(2);
    alert(obj.x2);

    function classs(value){
        this.value = value;

        var multiplication = function(value, n){
            console.log(n);
            return parseInt(value) * parseInt(n);
        }

        this.x1 = multiplication(this.value, 1);
        this.x2 = multiplication(this.value, 2);
        this.x3 = multiplication(this.value, 3);
    }
}

所以我只调用
obj.x2
,但调用
console.log(n)打印3次。我做错了什么?

因为你只需要调用乘法3次

创建对象时

var obj = new classs(2);
它在内部执行代码,正如您所看到的,有3个函数“乘法”的调用


因为你只需要做三次乘法运算

创建对象时

var obj = new classs(2);
它在内部执行代码,正如您所看到的,有3个函数“乘法”的调用


读取
x2
属性不会导致将任何内容记录到控制台,它只会读取已计算的值

属性
x1
x2
x3
是在创建
classs
对象时计算的,因此在读取
x2
属性之前,会将值记录到控制台。如果注释掉使用
x2
属性的行,值仍将被记录


如果要在创建对象后进行计算,则需要改用函数:

this.x2 = function() { multiplication(this.value, 2); }
用法:

alert(obj.x2());

读取
x2
属性不会导致将任何内容记录到控制台,它只会读取已计算的值

属性
x1
x2
x3
是在创建
classs
对象时计算的,因此在读取
x2
属性之前,会将值记录到控制台。如果注释掉使用
x2
属性的行,值仍将被记录


如果要在创建对象后进行计算,则需要改用函数:

this.x2 = function() { multiplication(this.value, 2); }
用法:

alert(obj.x2());

当执行类时,当设置x1、x2和x3时,乘法函数执行三次。这就是为什么console.log会被命中3次。另一方面,由于在obj.x2上调用了alert,因此该警报只发生一次。

当执行类时,当设置了x1、x2和x3时,乘法函数将执行三次。这就是为什么console.log会被命中3次。另一方面,自您在obj.x2上调用alert后,警报只发生一次。

您的意思是要调用
window.onload
,以便可以执行计算吗?您的意思是要调用
window.onload
,以便可以执行计算吗?