2012-01-23 4 views
0

Я использую нечто похожее на NodeJS, называемое bondi, оно построено на движке Firefox js .. В основном я получаю эту ошибку, и я считаю, что это связано с тем, Я ссылаюсь на «это» в функции .Get ниже.this._get не является функцией - javascript oop и prototypes

В основном существует инструмент под названием SFtpClient. Он имеет метод «Получить», чтобы отобразить содержимое папки, но я хочу изменить прототип для этого с помощью drop in include file. Мне нужно изменить его так, чтобы он a/повторяет несколько раз, когда он терпит неудачу, а b/имеет рекурсивную функцию списка папок.

Итак, я использовал прототип для его изменения - переехал. Вернемся к ._Get.

Может кто-нибудь понять, почему я бы получаю ошибку:

Jan 23 04:51:34 beta bondi: === this._Get is not a function --- Prio(6) Result(0x0) File(/home/nwo/approot/include/sftpclientenh 

, когда я запускаю этот код? Благодаря

SFtpClient.prototype._Get = SFtpClient.prototype.Get; 
SFtpClient.prototype.Get = function(Folder, Retries){ 

    //defaults 
    if(!Retries) Retries = 5; 
    if(!Folder) Folder = "~/"; 

    //vars 
    var FileListing = []; 

    var connect = function(){ 
     //TODO JRF 19.01.2012 : re-enable this when bondi is fixed 
     // this.HomeDirectory.replace(/\/?$/, "/"); 
     FileListing = this._Get(Folder); 

     return true; 
    } 

    var i = 1; 
    do{ 
     var res = false; 
     try { 
     res = connect(); 
     }catch(e){ 
      Debug.LogInfo(e.message); 
     } 
     i++; 
     Server.Sleep(i*2000); 
    } while(res==false && i < Retries); 

    return FileListing; 
} 

ответ

2

Попробуйте res = connect.call(this) вместо res = connect().

+0

pop pop! это работает. спасибо ... что все имеет смысл сейчас +1 – Jason

+0

Что произойдет, если есть аргумент, который мне нужно предоставить для подключения()? не в этом случае, а в будущем? – Jason

+0

'connect.call (это, arg1, arg2/* и т. Д. * /)'. в основном '.call()' принимает еще один аргумент, чем '()', и этот первый аргумент сообщает ему, что это было бы. –

Смежные вопросы