単純なJS継承を考えると、これら2つの例の基本関数の実際的な違いは何ですか?言い換えれば、プロトタイプではなく「これ」で関数を定義することを選択する必要があるのはいつですか(またはその逆)?
私にとって、2番目の例は消化しやすいですが、これにはどれだけ多くのことがありますか?
これで定義された関数:
//base
var _base = function () {
this.baseFunction = function () {
console.log("Hello from base function");
}
};
//inherit from base
function _ctor() {
this.property1 = "my property value";
};
_ctor.prototype = new _base();
_ctor.prototype.constructor = _ctor;
//get an instance
var instance = new _ctor();
console.log(instance.baseFunction);
プロトタイプで定義された関数:
//base
var _base = function () {};
_base.prototype.baseFunction = function () {
console.log("Hello from base function");
}
//inherit from base
function _ctor() {
this.property1 = "my property value";
};
_ctor.prototype = new _base();
_ctor.prototype.constructor = _ctor;
//get an instance
var instance = new _ctor();
console.log(instance.baseFunction);