gpt4 book ai didi

JavaScript 和这个

转载 作者:行者123 更新时间:2023-11-30 08:15:32 24 4
gpt4 key购买 nike

function distance(r,t){
this.rate = r,
this.time = t,
this.calculate = function() {return rate * time ;};
return this;
}

var trip1 = distance(2,4);
var trip2 = distance(5,7);
var trip3 = distance(3,10);
document.write("<br>trip1: " + trip1.calculate());
document.write("<br>trip2: " + trip2.calculate());
document.write("<br>trip3: " + trip3.calculate());

输出

trip1: 30
trip2: 30
trip3: 30

输出不应该是

trip1: 8
trip2: 35
trip3: 30

最佳答案

每个新距离都应该是一个新对象。此外,在计算内部,您必须通过“this”关键字来引用当前实例

function distance(r,t){
this.rate = r,
this.time = t,
this.calculate = function() {return this.rate * this.time ;};
return this;
}

var trip1 = new distance(2,4);
var trip2 = new distance(5,7);
var trip3 = new distance(3,10);
document.write("<br>trip1: " + trip1.calculate());
document.write("<br>trip2: " + trip2.calculate());
document.write("<br>trip3: " + trip3.calculate());

编辑上面没有新关键字的例子:

function distance(r,t){
if ( !(this instanceof distance) ) //checking if I'm using 'new' or not
return new distance(r, t);
this.rate = r,
this.time = t,
this.calculate = function() {return this.rate * this.time ;};
return this;
}

var trip1 = distance(2,4);
var trip2 = distance(5,7);
var trip3 = distance(3,10);
document.write("<br>trip1: " + trip1.calculate());
document.write("<br>trip2: " + trip2.calculate());
document.write("<br>trip3: " + trip3.calculate());

关于JavaScript 和这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4689396/

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