原型与原型链

2018-04-09  本文已影响0人  鑨的传人

什么是原型?

顾名思义,原型字面理解就是原来的类型或模型,这里可以理解为最初的函数模板.

对于有基于类的语言经验 (如 Java 或 C++)的开发人员来说,JavaScript有点令

人困惑,因为它是动态的,并且本身不提供一个class实现。(在 ES2015/ES6 中引

入了class关键字,但只是语法糖,JavaScript 仍然是基于原型的[prototype])。

1、JavaScript中所有的对象都是Object的实例,函数也是对象

Object.prototype

console.log(Object.prototype.constructor===Object);//true

console.log(Object.prototype.__proto===null);//true

typeof Object.prototype.__proto //'object'


Foo.prototype

console.log(Foo.prototype.constructor ===Foo);//true


function Foo(){}


const  f =new Foo;


f.__proto__//内部原型属性

console.log(Foo.prototype===f.__proto__);//true


为什么用原型?

原型为了实现面向对象思想【封装、继承、多态】,继承原型对象,实现多态

例如:层层继承

function Person(){}

Person.prototype.getName='zhangsan';

Person.prototype.Age='22';

var Animal=function(){}

Animal.prototype=new Person();

Animal.prototype.address='南京'

Animal.prototype.Age='30';

var temp=new Animal;

console.log(temp.getName);//zhangsan

console.log(temp.address);//南京

console.log(temp.Age);//30

上一篇下一篇

猜你喜欢

热点阅读