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
,以便可以执行计算吗?