原型链-属性问题+探索instanceof

210309

一、原型链-属性问题

  1. 读取对象的属性值时:会自动到原型链中查找
  2. 设置对象的属性值时:不会查找原型链,如果当前对象中没有此属性,直接添加
  3. 方法一般定义在原型中,属性一般通过构造函数定义在对象本身上
function Fn(){
    
} 
Fn.prototype.a = 'xxx'
var fn1 = new Fn()
console.log(fn1.a,fn1) //xxx 原型中的a
var fn2 = new Fn()
fn2.a = 'yyy'
console.log(fn2.a,fn2) //yyy Fn函数中的a
function Person(name,age){
    this.name = name
    this.age = age
}
Person.prototype.setName = function(name){
    this.name = name
}
var p1 = new Person("tom",12)
p1.setName('BOB')
console.log(p1)//12,BOB  属性在函数中,方法在原型里

二、探索instanceof(左边的对象是不是右边的实例)

  1. 表达式:A(对象) instanceof B(构造函数)(如果B函数的显式原型对象在A对象的原型链上,返回true,否则返回false)

  2. 一个实例对象有多个原型对象(顶端是Object的原型对象)

  3. Function是通过new自己产生的实例

posted @ 2021-07-08 11:14  STRIVE-PHY  阅读(58)  评论(0)    收藏  举报