Учитывая простое наследование JS, какая практическая разница в базовой функции между этими двумя примерами? Другими словами, когда человек должен решить определить функцию на «этом», а не на прототипе (или наоборот)?
Для меня второй пример легче усваивается, но что еще можно сказать об этом?
функция, определенная для этого:
//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);