2014-06-16 87 views
-1
var Bob = function() { 

    bob.hey = function (string) { 
     return ""; 
    }; 

}; 

var bob = new Bob(); 

bob.hey('Hi.'); 

上面的代碼返回「TypeError:無法設置屬性'hey'undefined」。怎麼了?Javascript - 不能設置方法屬性undefined

+2

鮑勃!==鮑勃和我不認爲代碼是你想要的... – epascarello

+0

爲什麼你要返回'「」'而不使用傳入的參數? –

+0

*「有什麼問題?」*如錯誤所示,「bob」未在「Bob」中定義。你爲什麼期望這個工作? –

回答

3

我想你想用thisBob的定義中:

var Bob = function() { 

    this.hey = function (string) { 
     return ""; 
    }; 

}; 

var bob = new Bob(); 

bob.hey('Hi.'); 
1

在你的代碼這一點,變量bob尚未確定:

bob.hey = function (string) { 

相反,你應該使用this來引用當前對象:

this.hey = function (string) { 
1

從VAR裏面剛纔提到的this因爲bob沒有定義的變量...

bob.hey = function (string) { 

應該是...

this.hey = function (string) { 
相關問題