私が理解したいjavascript
orの振る舞いが 1 つだけあります。node.js' require()
私はすでにこれを読みました:
.prototype なしでコンストラクター関数に新しいプロパティを追加する
この:
関数をオブジェクトに入れることとプロトタイプを作成することの違いは?
ただし、require()
http://docs.nodejitsu.com/articles/getting-started/what-is-requireを使用して次のような新しいオブジェクトを作成する場合:
var Ftp = require("jsftp"),
ftp = new Ftp({
host: "ftp.mywebsite.com",
});
そして、ftp.getPutSocket()
後で行う場合、実際には jsftp.js ファイルでオリジナルFtp.getPutSocket = function() {}
を呼び出しているとしましょう。
さて、それはどうしてでしょうか?もしそうなら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と同じことをやってみました