只有一种行为javascript
或特别node.js' require()
是我想理解的。我已经读过这个:
还有这个:
但是,如果您使用require()
http://docs.nodejitsu.com/articles/getting-started/what-is-require创建新对象,例如:
var Ftp = require("jsftp"),
ftp = new Ftp({
host: "ftp.mywebsite.com",
});
然后说如果你ftp.getPutSocket()
稍后再做,它实际上是Ftp.getPutSocket = function() {}
在jsftp.js文件中调用原始文件。
现在怎么可能?我想如果你这样做new Something()
,你只能打电话进去Ftp.prototype.getPutSocket
。那么require()
这里有什么魔法吗?
更新 1:
所以这与结束无关,require()
但基本上是一条function.call(Ftp.prototype)
线。但这怎么给了我错误:
http://jsfiddle.net/qhoc/7j3Vp/
var Test = function() {
console.log('aa');
}
(function() {
this.anotherTest = function() {
console.log('bb');
}
}).call(Test.prototype);
错误:
Uncaught TypeError: Cannot read property 'prototype' of undefined
我试图做与https://github.com/sergi/jsftp/blob/master/lib/jsftp.js相同的事情