2012-12-31 51 views
1

假設我有這樣的班級。私人和特權方法的區別

function kevin(name){ 
    this.name = name; 
    this.methodKevin = function(){ 
     console.log(this.name); 
    }; 
    var kevin = function(){ 
     console.log(this.name); 
    } 
    function newKevin(){ 
     console.log(this.name); 
    } 
} 
  1. 是什麼在JavaScript中它們之間的區別?
  2. 我的課程是否完美,我可以在我的 構造函數中使用函數表達式嗎?
+0

你有沒有想出名字「priviledge方法」?我認爲這是Brillant。 –

+0

@MattiVirkkunen:無論如何......錯......它的特權方法。 – Kevin

+0

我從來沒有聽說過那個。 –

回答

2

這取決於它們是如何被調用的,也許有點混淆,因爲有兩個函數名爲:kevin

  1. methodKevin將被綁定到除非稱爲由new kevin窗口對象,在whichcase它被綁定到頂層kevin功能對象。 this.name將如預期的那樣僅在由new實例化的函數調用時才起作用。
  2. var kevin函數作用域爲父函數kevin函數,因此它可能永遠不會在該函數之外被調用。在這個意義上它是私人的。 this.name將工作,但僅僅name就足夠了。
  3. 和2相同