面向对象通过函数封装得到一个类,
备注:类的本质还是函数
1 每个类(函数)天生有一个prototype的属性,这个prototype又是一个对象,这个对象里面有个construction(构造函数)的属性,属性值是类本身。
2 我们所有new 一个类的时候,其实是调用它的构造函数。构造函数里的属性都是私有的,构造函数里的this都是实例对象。
3 每个对象上天生有一个__proto__,指向类的原型。
function Person(){
}
var zhangsan=new Person;
console.dir(zhangsan)
console.log(zhangsan.__proto__==Person.prototype)
Prototype __proto__
- prototype是类的或者函数的,__proto__是对象的
- Prototype是存储机制,__proto__是查找机制
Zhangsan.name
Zhangsan这个对象首先看name是私有的,是就直接使用,不是的就通过__proto__往它的类的原型上上查找,有就直接使用,没有就继续向上查找,直到查找到基类object,没有就是undefined,有就直接使用。这种查找机制叫原型链。
函数的特殊
1类
2函数
3对象
4.每个函数天生有个返回值,return的是什么就是什么,如果没有return就是undefined