首页 > 代码库 > js面向对象之原型链

js面向对象之原型链

对于c/c++/java,继承的方法直接用相应的语法继承,但是javaScript不一样,js是采用原型继承的思路来实现面向对象的。

js-类

在js中并没有class的概念,使用了一个函数,运行new的时候会为函数生成一个对象,对象含有隐藏的属性_proto_,这个属性的值就是对fun.prototype的引用。

例如下面的person函数:

function Person(name, gender) {
    this.name = name;
    this.gender = gender;
}
var a = new Person("jason", ‘male‘);
var b = new Person("Amy", ‘female‘);

console.log(a.name);
console.log(b.gender);

共享属性和方法

为了共享属性和方法,就要用的这个属性--prototype,每个函数都有prototype属性,通常是一个空的对象。如果加点东西,那么这个函数构造出来的对象都能访问到。

js面向对象之原型链