2017-02-15 83 views
0

我創建了JavaScript的重新分配函數變量上的JavaScript

function Vector(basex,basey,basez) { 
    if(!(this instanceof Vector)) 
     return new Vector (x,y,z); 
    this.x=basex; 
    this.y=basey; 
    this.z=basez; 
} 

Vector.prototype.toString=function(){ 
    return '(' + this.x + ', '+ this.y + ', ' + this.z + ')'; 
} 


s= new Vector(1,2,3); //(1,2,3) 
然而

一個的Vector3功能,當我試圖重新分配s的

s=Vector(3,4,5) 

我得到 的ReferenceError在行楠:x是未定義

如果我使用

s=new Vector(3,4,5) 

它的工作原理,但這是重新分配我的變量的正確方法? 我試圖查找網絡對於一些「重新分配我的變量」,但只喜歡一個原始瓦爾可以重新分配

var n=3; 
n=5; 

但是一無所知功能。 任何頭像?

+0

(不可變值通常的工作更容易,更安全我有一個任務去了,也沒有重新分配,以99%的我代碼。只是說。) – 9000

回答

3

在此代碼:

if(!(this instanceof Vector)) 
    return new Vector (x,y,z); 

變量xy,和z沒有定義。你可能想用的是哪個被傳遞給函數的值:

if(!(this instanceof Vector)) 
    return new Vector (basex,basey,basez); 
+0

不能比我現在感覺更愚蠢......錯過了這一個 – user2956754