js万物皆对象,要带着观察对象的眼观去看待每一个函数、变量。
为什么要用到原型?
Es6以前,js中没有如ooa编程当中的class,但是要用到类,怎么办呢,构造函数就应运而生,但是构造函数里面添加方法,发现他们的内存地址并不一样,也就是说每实例一个对象,就要开辟一个存储空间,这样是非常浪费内存的
如:
function People(name, age) {this.name = name;this.age = age;this.show = function(){console.log('我的名字是'+name);}}var boy = new People('kejin', '18');var girl = new People('lucy', '20');console.log(boy.show===girl.show); //false
此时要用到原型来解决此问题
function People(name, age) {this.name = name;this.age = age;}People.prototype.get = function() {console.log('我的名字是'+name);}var boy = new People('kejin', '18');var girl = new People('lucy', '20');console.log(boy.show===girl.show); //true
所以js在对象里添加方法一般都是通过原型
包括Window、Document、Audio、Promise等
有时候不知道他们的接口是什么,可以通过 console.dir()来获取
比如Promise