2013-09-26 33 views
0
myvar = whatever; 

namespace.myspace.Create = function() { 
    this.myvar = null; 
    this.MyFunction = function (val) { 
     this.myvar = val; 
    } 
} 

--- 

namespace.myspace.Create = function() { 
    var myvar = null; 
    this.MyFunction = function (val) { 
     this.myvar = val; 
    } 
} 

--- 

namespace.myspace.Create = function() { 
    myvar = null; 
    this.MyFunction = function (val) { 
     this.myvar = val; 
    } 
} 

var myObject = new namespace.myspace.Create(); 

綜觀上述代碼中,尤其是正在MYVAR定義爲:如何正確定義一個變量來修正對象範圍

  • this.myvar = NULL;
  • var myvar = null;
  • myvar = null;

這些有什麼主要的區別,範圍和用途?任何陷阱或首選的方式?這些中的任何一個都是錯誤的,不應該被使用?

+0

'MYVAR = whatever'全球。 'this.myvar = null'上下文或實例。 'var myvar = null'本地。 'myvar = null'全局。 – elclanrs

+0

你會使用哪一個取決於你想要達到的目標。請注意,所有三個示例都在'this.MyFunction()'中用'this.myvar'設置了一個實例變量。 – nnnnnn

回答

1

myvar是一個全局變量

this.myvar是一個公共變量作用域的myspace命名空間

var myvar爲私有變量,它也作用域的myspace命名空間