js-深拷贝、浅拷贝

55 阅读1分钟

instanceof

  1. instanceof用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上

  2. 语法: object(实例对象) instanceof constructor(某个构造函数)

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}
const auto = new Car('Honda', 'Accord', 1998);

console.log(auto instanceof Car);
// expected output: true

console.log(auto instanceof Object);
// expected output: true

要检测对象不是某个构造函数的实例时

if (!(mycar instanceof Car)) {
  // Do something, like mycar = new Car(mycar)
}
// 不能写成
if (!mycar instanceof Car)

Object.prototype.hasOwnProperty()

  1. 指示对象自身属性中是否具有指定的属性
  2. 语法:obj.hasOwnProperty(prop)
  3. @return Boolean
  4. 此方法和in不同,hasOwnProperty()会忽略原型链上继承的属性

遍历一个对象的所有自身属性 忽略继承属性 for...in只会遍历可枚举属性

let info = { name: "vvvvv", age: 25};
    for(let prop in info) {
        if(info.hasOwnProperty(prop)) {
          console.log(info[prop]);
        }else {
          console.log('none');
        }
}
// output: vvvvv 25