2017-06-17 12 views
0

私はNode.jsを学ぶのに初めての学生です。なぜconsole.logは私に未定義を与えるのだろうか?私はそれが 'Hello World!'代わりに。どこが間違っていますか?Nodejsが関数を呼び出す

ありがとうございます!

function Greetr() { 
    this.greeting = 'Hello World!'; 
} 


Greetr.prototype.greet = function() { 
    console.log(this.greeting); 
} 

Greetr.prototype.greet(); 
+2

可能な重複を経由してあなたのgreet関数を呼び出します.prototype.methodName()およびfunObject.methodName()?](https://stackoverflow.com/questions/44517936/is-there-any-difference-between-calling-function-in-functionname-prototype-metho) –

答えて

1

あなたのプロトタイプを使用してアクセスします。その場合、thisはあなたのオブジェクトではありません。ログインすると、thisが表示されます。

function Greetr() { 
 
    this.greeting = 'Hello World!'; 
 
} 
 

 
Greetr.prototype.greet = function() { 
 
    console.log(this); 
 
} 
 

 
Greetr.prototype.greet();

ご覧のとおり、thisは名前greetingを持つ任意のプロパティを持っているので、それはundefinedを記録しませんあなたのprototype objectを指します。

はあなたが object作成する最初の必要な目的の結果を得るには、その後、functionNameを中に関数呼び出しの間に何らかの違いがある[の object

function Greetr() { 
 
    this.greeting = 'Hello World!'; 
 
} 
 

 

 
Greetr.prototype.greet = function() { 
 
    console.log(this.greeting); 
 
} 
 

 
var greetr = new Greetr(); 
 
greetr.greet();

関連する問題