Доступ к двум переменным «this» в Function.prototype - PullRequest
1 голос
/ 03 июня 2011

Я хотел бы расширить Function.prototype с помощью пользовательского метода:

Function.prototype.myMethod = function() {
     var fn = this;
     var owner = ???;
     /** ... */
};

this в этой области относится к исходной функции. Но как мне получить доступ к this, который относится к объекту, который «владеет» функцией (или к чему-либо внешнему this в момент вызова fn)?

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Вам нужно будет передать его как параметр для вызова функции ... не уверен, возможно ли это в вашем конкретном случае.

myMethod(this);

function myMethod( parent ) {
    // ...
0 голосов
/ 03 июня 2011

SpiderMonkey и JScript реализуют нестандартное свойство "вызывающего" в объектах-функциях.Я не знаю степень поддержки в других браузерах.

Я верю, что она должна быть доступна следующим образом:

Function.prototype.myMethod = function() {
   var fn = this;
   var owner = this.caller;
   /** ... */
};

, но не проверял ееКак я уже сказал, это не является частью стандарта ECMA.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller

...