构造函数方法将构造函数作为参数,并以Javascript返回构造函数

构造函数方法将构造函数作为参数,并以Javascript返回构造函数,javascript,html,object,methods,constructor,Javascript,Html,Object,Methods,Constructor,方法sum应将另一个向量作为参数,并返回一个新向量,该向量包含两个向量的和(x和y值此向量和参数)。sum的return语句给出了一个错误,因此,console.log(val3)返回undefined。我该如何解决这个问题 function Vector(a,b){ this.x = a; this.y = b; this.sum = function(Vector){ return Vector(this.x + Vec

方法sum应将另一个向量作为参数,并返回一个新向量,该向量包含两个向量的和(x和y值向量和参数)。sum的return语句给出了一个错误,因此,
console.log(val3)
返回undefined。我该如何解决这个问题

function Vector(a,b){
        this.x = a;
        this.y = b;
        this.sum = function(Vector){
            return Vector(this.x + Vector.x, this.y + Vector.y);
        }
    }
    Vector.prototype.show  = function(){
        document.write("x: "+this.x+" y: "+this.y);
        document.write("<br/>");
        document.write("Distance from Origin: " + Math.sqrt((this.x)**2 + (this.y)**2).toFixed(2));
    }
    var val1 = new Vector(5,6);
    var val3 = val1.sum(val2);
    console.log(val3);
函数向量(a,b){
这个x=a;
这个y=b;
this.sum=函数(向量){
返回向量(this.x+Vector.x,this.y+Vector.y);
}
}
Vector.prototype.show=函数(){
文件。写入(“x:+this.x+”y:+this.y);
文件。写(“
”); 文件。写入(“与原点的距离:+Math.sqrt((this.x)**2+(this.y)**2.toFixed(2)); } var val1=新向量(5,6); var val3=val1.和(val2); 控制台日志(val3);
由于要实例化新对象,因此需要使用
new
关键字

新向量(…)
而且,
val2
从未定义过,所以我将
val3
更改为
val2
。另外,如果
a
b
的真正意思是
x
y
,则不要使用它们

函数向量(x,y){ 这个.x=x; 这个。y=y; this.sum=函数(其他){ 返回新向量(this.x+other.x,this.y+other.y); } } Vector.prototype.show=函数(){ 文件。写入(“x:+this.x+”y:+this.y); 文件。写(“
”); 文件。写入(“与原点的距离:+Math.sqrt((this.x)**2+(this.y)**2.toFixed(2)); } var val1=新向量(5,6); var val2=val1.总和(val1);
console.log(val2)由于您正在实例化一个新对象,因此需要使用
new
关键字

新向量(…)
而且,
val2
从未定义过,所以我将
val3
更改为
val2
。另外,如果
a
b
的真正意思是
x
y
,则不要使用它们

函数向量(x,y){ 这个.x=x; 这个。y=y; this.sum=函数(其他){ 返回新向量(this.x+other.x,this.y+other.y); } } Vector.prototype.show=函数(){ 文件。写入(“x:+this.x+”y:+this.y); 文件。写(“
”); 文件。写入(“与原点的距离:+Math.sqrt((this.x)**2+(this.y)**2.toFixed(2)); } var val1=新向量(5,6); var val2=val1.总和(val1);
console.log(val2)您需要为
sum
参数指定一个与
Vector
不同的名称,以便可以引用外部
Vector
构造函数:

函数向量(a,b){
这个x=a;
这个y=b;
this.sum=函数(其他向量){
返回新向量(this.x+otherVector.x,this.y+otherVector.y);
}
}
var val1=新向量(5,6);
var val2=新向量(-3,-3);
var val3=val1.和(val2);

控制台日志(val3.x,val3.y)
您需要为
sum
参数指定一个与
Vector
不同的名称,以便可以引用外部
Vector
构造函数:

函数向量(a,b){
这个x=a;
这个y=b;
this.sum=函数(其他向量){
返回新向量(this.x+otherVector.x,this.y+otherVector.y);
}
}
var val1=新向量(5,6);
var val2=新向量(-3,-3);
var val3=val1.和(val2);

控制台日志(val3.x,val3.y)“未捕获引用错误:未定义val2”“未捕获引用错误:未定义val2”您没有提到缺少
new
关键字。您没有提到缺少
new
关键字。