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();