Javascript使用prototype.__proto__实现继承,简洁0污染

由于个人博客的服务器提供商最近打算关闭服务,无奈只能考虑将部分认为有价值的东西转移到这边过来,搞过一次个人博客就不太想再搞第二次了。
以下的方式实现的Javascript继承非常简单使用。javascript中一切都是对象,每个对象都是基于原型对象创建的,每个对象中都有proto属性,这个属性指向的就是它基于的原型对象。

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

参考了两篇文章实现的:
http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html
http://blogzhoubo.iteye.com/blog/1685368

你可能感兴趣的:(Javascript使用prototype.__proto__实现继承,简洁0污染)