私はUnderscore.jsの注釈付きソースを読んできましたが、通常通りにオブジェクトを_()
に渡すときに、this._wrapped
をどのように使っているのだろうと思いましたオブジェクトを_
オブジェクトの関数に渡します。アンダースコア.jsはthis._wrapをどのように使用しますか
この:対
_(myObj).each(callback);
:
_.each(myObj, callback);
私は最初の関数呼び出しを実行して、開発者向けツールでそれを一時停止すると、最終的にコードはここに終わる:
_.mixin = function(obj) {
_.each(_.functions(obj), function(name) {
var func = _[name] = obj[name];
_.prototype[name] = function() {
var args = [this._wrapped];
push.apply(args, arguments);
return result(this, func.apply(_, args));
};
});
};
しかし、私はそれがそこに行くことを知っていた方法について確信しています。誰かが私にこれを理解させる助けになるだろうか?また、私は前に答えを探してみましたが、この特定の質問は出てこないようです。これが前に答えられていれば、私の謝罪。オブジェクト指向のスタイルでアンダースコアを使用して
@Tomalak - 誤って読んだことがあります.2行目は '!()'が 'new()を使わずに呼び出された場合です! 'をテストしますが、これが実行されると'new _(obj)'を呼び出すと、最初のif文と2番目のif文の両方に失敗し、3行目に到達します。 – mikeapr4
私が話しているパターンを示すJSFiddleで答えを更新しました – mikeapr4
あなたは正しいです、私は誤解しました。申し訳ありません、気にしないで、続けてください。 :) – Tomalak