2016-04-22 7 views
0

Ich habe einen Code mit Konstruktor Vector geschrieben (er hat zwei Parameter) und ich möchte verschiedene Parameter über eine Prototypfunktion übergeben und die Summe zusammenfassen Werte für beide Parameter.Konstruktor in Javascript gibt keinen korrekten Wert zurück, der von der Prototypfunktion übergeben wird

Aber ich habe ein Problem mit dem Drucken von endgültigen Vector.

function Vector(x, y) { 

    this.x = x; 

    this.y = y; 

    console.log(x, y);//initially this prints (3,3) 

    return (x, y); 
} 



Vector.prototype.plus = function (a, b) { 

    this.x = this.x + a; 
    this.y = this.y + b; 
    console.log(this.x, this.y);// After passing (1,9) it prints (4,12)but  
    return (this.x, this.y); //after returning (this.x, this.y) it 
           //prints only Y coordinate as 12 
} 

var type_vector = new Vector(3, 3); 

console.log(type_vector.plus(1, 9)); 

Ausgang: (3,3),(4,12),12

+2

Ich glaube nicht, dass Sie mehrere Werte in Parens so zurückgeben können. Stattdessen müssen Sie ein Objekt zurückgeben {return {y: this.y, x: this.x}; ' – evolutionxbox

+0

Ich glaube nicht, dass" return (x, y); "bedeutet, was Sie denken, dass es bedeutet. –

+0

In Javascript kann U 'return (x, y);' nicht verwenden – codetalker

Antwort

0

Nun, in JavaScript, wenn Sie ein Array zurückgeben möchten Sie die [] Notation verwenden können.

Diff. Dies mit dir Version:

function Vector(x, y) { 
    this.x = x; 
    this.y = y; 
    console.log(x, y); 
    return this; 
} 
Vector.prototype.plus = function(a, b) { 
    this.x = this.x + a; 
    this.y = this.y + b; 
    console.log(this.x, this.y); 
    return [this.x, this.y]; 
}; 
var type_vector = new Vector(3, 3); 
console.log(type_vector.plus(1, 9)); 
2

Ich glaube, die Sie von einem Python Hintergrund sind, denn es gibt (x, y) als Tupel zurückgegeben. In JS wenn du zurückkommst (x, y); Es ist der Wert an der schließenden Klammer (in diesem Fall y). Sie müssen ein Objekt oder ein Array für Ihr Ziel verwenden.

versuchen, dies auf der Konsole:

var a = (3, 4, 5, 6); 
console.log(a); 
Verwandte Themen