prototype 属性使您有能力向对象添加属性和方法。
function People(){ } People.prototype.say = function(){ alert("hello"); } function Student(){ } Student.prototype = new People(); var s = new Student(); s.say();
(function(){ var n = 666; function People(name){ this._name = name; } People.prototype.say = function(){ alert("hi"+this._name+n); } window.People = People; }()); (function(){ var n = 777; function Student(name){ this._name = name; } Student.prototype = new People(); var main = Student.prototype.say; Student.prototype.say = function(){ main.call(this); alert("bye"+this._name+n); } window.Student = Student; }()); var v = new Student("ii"); v.say();
(function(){ var n = 1; function Person(name){ var _this = {}; _this._name = name; _this.say = function(){ alert("a"+_this._name+n); } return _this; } window.Person = Person; }()); function Teacher(name){ var _this = Person(name); var superSay = _this.say; _this.say = function(){ superSay.call(_this); alert("b"+_this._name); } return _this; } var t = Teacher("iwen"); t.say();