私はunderscore.jsコードを解決しようとしていますが、最初に問題があります。このスニペットは、「以下で使用するアンダースコア オブジェクトへの安全な参照を作成する」と説明されています。
var _ = function(obj) {
if (obj instanceof _) return obj;
if (!(this instanceof _)) return new _(obj);
this._wrapped = obj;
};
理解できません。それは単純な関数ですか、それともコンストラクタですか? 一見すると、次のようになります。
this._wrapped = obj;
したがって、コンストラクターですが、リターン付きの2つの「if」があるため、ifがfalseになるとコンストラクターになり、ifの1つがtrueになると関数になりますか?
そして他の質問:
if (!(this instanceof _)) return new _(obj);
ここで「これ」とは何ですか?そして、なぜそれが安全であることが証明されたのですか。もしそれが真なら、それ自体のオブジェクトを作成していますか? それは再帰のようなものですか?