原型

126 阅读1分钟

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