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());
Run Code Online (Sandbox Code Playgroud)
输出中
trip1: 30
trip2: 30
trip3: 30
Run Code Online (Sandbox Code Playgroud)
输出不应该是
trip1: 8
trip2: 35
trip3: 30
Run Code Online (Sandbox Code Playgroud)
每个新距离都应该是一个新对象.另外,在inside计算中,你必须通过"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());
Run Code Online (Sandbox Code Playgroud)
编辑上面没有NEW关键字的例子:
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());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |