js面向对象之原型链

Posted 糊涂一点web

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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面向对象之原型链的主要内容,如果未能解决你的问题,请参考以下文章

js面向对象程序设计之继承

原型对象原型链--js面向对象

js继承之原型链继承

js继承之原型链继承

简单粗暴地理解js原型链--js面向对象编程

简单粗暴地理解js原型链--js面向对象编程