var Hello = function (){};
Hello.prototype = {
say: function (){ alert(this.toString()); },
toString: function (){ return 'Hello'; }
};
var HelloWorld = function (){};
// классическое наследование
HelloWorld.prototype = (function (){
var F = function (){};
F.prototype = Hello.prototype;
return new F;
})();
// переопределение
HelloWorld.prototype.toString = function (){
// вызываем родительские метод
var hello = Hello.prototype.toString.call(this);
return hello + ' World';
};
(new HelloWorld).say();
// Согласитесь, писать [[Class]].prototype.method напряжно :],
// так что упростим себе жизнь
Hello.fn = Hello.prototype = ...;
// бла-бла-бла
HelloWorld.fn = HelloWorld.prototype = ...;
// и ...
HelloWorld.fn.toString = function (){
var hello = Hello.fn.toString.call(this);
return hello + ' World';
};
Hello.prototype = {
say: function (){ alert(this.toString()); },
toString: function (){ return 'Hello'; }
};
var HelloWorld = function (){};
// классическое наследование
HelloWorld.prototype = (function (){
var F = function (){};
F.prototype = Hello.prototype;
return new F;
})();
// переопределение
HelloWorld.prototype.toString = function (){
// вызываем родительские метод
var hello = Hello.prototype.toString.call(this);
return hello + ' World';
};
(new HelloWorld).say();
// Согласитесь, писать [[Class]].prototype.method напряжно :],
// так что упростим себе жизнь
Hello.fn = Hello.prototype = ...;
// бла-бла-бла
HelloWorld.fn = HelloWorld.prototype = ...;
// и ...
HelloWorld.fn.toString = function (){
var hello = Hello.fn.toString.call(this);
return hello + ' World';
};