接受参数的Javascript结构函数

接受参数的Javascript结构函数,javascript,jquery,Javascript,Jquery,有人叫我值勤 我想为以下内容编写代码: var p1 = new LatLon(userLat, userLon); var p2 = new LatLon(destLat, destLon); var dist = p1.distanceTo(p2); 这意味着我需要创建一个Javascript结构,它将创建一个位置,然后还可以将第二个位置作为参数。我不需要代码来计算距离。我只

有人叫我值勤

我想为以下内容编写代码:

var p1 = new LatLon(userLat, userLon);                                                    
var p2 = new LatLon(destLat, destLon);  
var dist = p1.distanceTo(p2);    
这意味着我需要创建一个Javascript结构,它将创建一个位置,然后还可以将第二个位置作为参数。我不需要代码来计算距离。我只需要弄清楚如何创建对象并允许它接受参数。以下是我的伪代码/失败的尝试:

function LatLon(userLat, userLon) {
    var pos = {
      'lat': userLat, 'lon': userLon, 'distanceTo': distanceBetweenTwoPos(pos, pos2);
    }
    return pos;
}

function distanceBetweenTwoPos(pos, pos2){
    // here I will do my own calculations. 
}
获得类似上述功能的帮助吗?

试试:

function LatLon(userLat, userLon) {
    this.lat=userLat;
    this.lon=userLon;
    this.distanceTo=function(to){ return distanceBetweenTwoPos(this, to);}   

}
尝试:


使用典型的原型继承方法,它可能是这样的

function LatLon(userLat, userLon) {
    this.lat = userLat;
    this.lon = userLon;
}

LatLon.prototype.distanceTo = function(pos2){
    console.log(this.lat, pos2.lat);
    console.log(this.lon, pos2.lon);
    // return the result
}
LatLon
构造函数中,因为您使用
new
调用它,
是对正在构造的对象的引用,所以需要使用
return
语句;它将返回新对象

distance to
内部,
将是对调用该方法的对象的引用,因此在您的代码中,它将是对
p1
对象的引用

当然,
p2
将作为参数传递

var p1 = new LatLon(userLat, userLon);
var p2 = new LatLon(destLat, destLon);  
var dist = p1.distanceTo(p2); 

使用典型的原型继承方法,它可能是这样的

function LatLon(userLat, userLon) {
    this.lat = userLat;
    this.lon = userLon;
}

LatLon.prototype.distanceTo = function(pos2){
    console.log(this.lat, pos2.lat);
    console.log(this.lon, pos2.lon);
    // return the result
}
LatLon
构造函数中,因为您使用
new
调用它,
是对正在构造的对象的引用,所以需要使用
return
语句;它将返回新对象

distance to
内部,
将是对调用该方法的对象的引用,因此在您的代码中,它将是对
p1
对象的引用

当然,
p2
将作为参数传递

var p1 = new LatLon(userLat, userLon);
var p2 = new LatLon(destLat, destLon);  
var dist = p1.distanceTo(p2); 
演示:

演示: