我正在從Java切換到NodeJs,所以有些東西對我來說依然模糊不清。我必須使用「這個」。在NodeJs中使用「對象」屬性?
我正在嘗試使用腳本,就像我會用Java中的類一樣。我已經認識到這來做到這一點:
var client = require('scp2');
var host, username, password;
var SftpHandler = function (host, username, password) {
this.host = host;
this.username = username;
this.password = password;
};
SftpHandler.prototype.downloadFile = function (path, callback) {
console.log(this.host,username,password,path);
};
module.exports = SftpHandler;
問題是,當我把它從另一個這樣的腳本:
var sftpHandler = new SftpHandler(credentials.sftpHost, credentials.sftpUsername, credentials.sftpPassword);
sftpHandler.downloadFile(credentials.sftpPathToImportFiles+configFile.importFileName, callback);
我在控制檯日誌中有162.*.*.* undefined undefined undefined ...
。
我意識到這是由於我缺乏this.
在我指的對象屬性。但爲什麼需要this.
?這是做到這一點的正確方法嗎?
我看@保羅謝謝你。正如在你的例子中寫的,嵌套函數中的'this'引用了它自己的參數。那麼你通常如何從該函數中訪問實例/對象屬性? +1 btw –
@OndrejTokar - http:// stackoverflow。com/a/20279485/19068 – Quentin
我就是這樣。但我認爲這是一個骯髒的解決方案。感謝您的參考。 –