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

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

}; 

var bob = new Bob(); 

bob.hey('Hi.'); 

위 코드는 "TypeError : 'hey'가 정의되지 않은 속성을 설정할 수 없습니다. 뭐가 문제 야?Javascript - 정의되지 않은 메서드의 속성을 설정할 수 없습니다.

+2

밥을 참조! == 밥과 내가 생각하지 않습니다 코드가 원하는 것입니다 ... – epascarello

+0

전달 된 매개 변수를 사용하지 않고' ""'를 반환하는 이유는 무엇입니까? –

+0

* "무엇이 잘못 되었나요?"오류가 의미하는 바대로'Bob '은'Bob'내부에 정의되어 있지 않습니다. 왜 이것이 효과가 있다고 기대 했습니까? –

답변

3

난 당신이 Bob의 정의 내부 this를 사용하는 의미 생각 : 코드에서이 시점에서

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) { 
var에 내부에서
1

(3210)은 bob 때문에 정의되지 않은 this로 변수 ...

bob.hey = function (string) { 

될해야 ...

this.hey = function (string) { 
관련 문제