由于個(gè)人博客的服務(wù)器提供商最近打算關(guān)閉服務(wù),無奈只能考慮將部分認(rèn)為有價(jià)值的東西轉(zhuǎn)移到簡書這邊過來躁劣,搞過一次個(gè)人博客就不太想再搞第二次了迫吐。
以下的方式實(shí)現(xiàn)的Javascript繼承非常簡單使用。javascript中一切都是對象账忘,每個(gè)對象都是基于原型對象創(chuàng)建的志膀,每個(gè)對象中都有proto屬性,這個(gè)屬性指向的就是它基于的原型對象鳖擒。
var Parent = function () {
this.name = 'parent';
};
Parent.prototype.sayName = function () {
alert(this.name);
};
var Son = function () {
Parent.apply(this, arguments);
this.name = 'son';
};
Son.prototype.__proto__ = Parent.prototype;
Son.prototype.sayName = function() {
alert('My name is:' + this.name);
};
var parent = new Parent();
var son = new Son();
parent.sayName();
son.sayName();
console.log(
Parent.__proto__ === Function.prototype,
parent.__proto__ === Parent.prototype,
parent.constructor === Parent,
Son.__proto__ === Function.prototype,
son.__proto__ === Son.prototype,
son.constructor === Son
);
參考了兩篇文章實(shí)現(xiàn)的:
http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html
http://blogzhoubo.iteye.com/blog/1685368