0

とは異なり、OOPには、発信者を持っていないし。しかし、私がoop-styleで書くと、呼び出し元はnullになります。は、なぜ私はこのような別の手続き関数を呼び出す手続きの機能を持っている場合は、オブジェクトのプロトタイプメソッドは、手続き型プログラミングで

function myObj() {} 
myObj.prototype.awesome = function() { 
    return arguments.callee.caller.name; 
} 
myObj.prototype.ridiculous = function() { 
    return this.awesome(); 
} 

私は、どうしてこのようなことが起こり、とにかく発信者を戻すのだろうと思います。

答えて

1

オブジェクトのキーと機能の名前は同じではありません。

は私のスニペットを見てみましょう:

function myObj() {} 
 
myObj.prototype.awesome = function awesome() { 
 
    return arguments.callee.caller.name; 
 
} 
 
myObj.prototype.ridiculous = function ridiculous() { 
 
    return this.awesome(); 
 
} 
 

 
var o = new myObj(); 
 
console.log(o.ridiculous())

+0

愚かな私!あなたの答えを読んだ後、それは完全に明らかです。ありがとうございました! – shaedrich

0

プロトタイプのメソッドを宣言するときに名前の関数を使用する必要があるためです。

など:

function myObj() {} 
myObj.prototype.awesome = function awesome() { 
    return arguments.callee.caller.name; 
} 
myObj.prototype.ridiculous = function ridiculous() { 
    return this.awesome(); 
} 

myObj.prototype.ridiculous() 
+0

ああ、ありがとう。ちゃんと覚えておきますよ :) – shaedrich

関連する問題