prototype 原型里面存放的都是公用属性
prototype 是函数的固有属性
function Person(name,age)
{
this.name=name;
this.age=age;
}
只有当new的时候才能体现它的价值
Person.prototype.eat=function()
{
console.log("chi")
}
let p1=new Person('aaaa',12);
let p2=new Person('bbbb',13);
p1.eat()//"chi"
p2.eat()//'chi'
Pesron.prototype.constructor====Person //true
都会有 一个属性constructor 属性值是它本身 所有实例都有__proto____ ;属性值是当前实例所属类的prototype
类函数的默认原型prototype都是指向object类(基类)的实例
return 后面如果是引用类型 则返回引用类型 否则返回这个堆内存(实例)
常见的内置类 或者自己定义的类的原型 __proto__一般都是基类的原型
最终都会指向基类 object
instanceof
A instanceof B
从A到基类的原型,这条原型链上有没有b的原型存在
只适用于引用类型 不适用 值类型
let ary=[]
var num=1;
console.log(num instanceof Number) //false
console.log(ary instanceof Number)//false
console.log(ary instanceof Array)//true
console.log(ary instanceof Object)//true