私は最近、javascript-spessoreのようなjavascriptに関するいくつかの本を勉強しています。 と私はjavascriptで構築されていないextendのようなコード例をいくつか見つけました。についてjavascript extend function
var WidgetModel = function(id, attrs) {
extend(this, attrs || {});
this.id = function() {
return id
}
}
extend(WidgetModel.prototype, {
set: function(attr, value) {
this[attr] = value;
return this;
},
get: function(attr) {
return this[attr]
}
});
そしてもちろん、それはエラーメッセージ動作と表示されない: キャッチされないにReferenceError:延びるが定義されていない コードスニペットは、次の通りです。 私の問題は、上部の コードスニペットをうまく機能させるためにextendのような関数を作成する方法です。 ご意見ありがとうございます。
@Ryan私はそれを書くのが面倒だったが、あなたは正しいです。 – alex
なぜ 'source.hasOwnProperty(prop)'ではなく 'Object.prototype.hasOwnProperty.call(source、prop)'ですか?そしてなぜ関数宣言の代わりに関数式を使用するのですか? – RobG
@RobG 'source'オブジェクトが直接それに定義されている場合(まれな状況)、宣言よりも関数式が本当の理由ではありません。 – alex