首页 > 编程语言 >JavaScript学习笔记—instanceof和hasOwn

JavaScript学习笔记—instanceof和hasOwn

时间:2023-01-18 23:22:06浏览次数:42  
标签:instanceof JavaScript console log Object hasOwn true

1. instanceof

  • 用来检查一个对象是否是一个类的实例
  • 检查的是对象的原型链上是否有该类实例(只要原型链上有该类实例,就会返回true)
  • Object是所有对象的原型,所以任何对象和Object进行instanceof运算都会返回true

原型链:dog -> Animal实例 -> Object实例 -> Object原型

class Animal {}
class Dog extends Animal {}
const dog = new Dog();
console.log(dog instanceof Dog); // true
console.log(dog instanceof Animal); // true
console.log(dog instanceof Object); // true

2. hasOwn

  • 用来检查一个对象的自身是否含有某个属性
  • 语法:Object.hasOwn(对象, 属性名)
class Person {
  name = "孙悟空";
  age = 18;
  sayHello() {
    console.log("Hello,我是" + this.name);
  }
}
const p = new Person();
console.log(Object.hasOwn(p, "name")); // true
console.log(Object.hasOwn(p, "sayHello")); // false

// in:使用in运算检查属性时,无论属性在对象自身还是原型中,都会返回true
console.log("name" in p); // true
console.log("sayHello" in p); // true

标签:instanceof,JavaScript,console,log,Object,hasOwn,true
From: https://www.cnblogs.com/zibocoder/p/17060841.html

相关文章

  • JavaScript trim() 方法
    JavaScripttrim()方法JavaScriptString对象去除字符串的头尾空格:varstr="Runoob";alert(str.trim());输出结果:Runoob定义和用法:trim()方法用于删......
  • JavaScript学习笔记—原型对象
    1.访问一个对象的原型对象(1)对象.__proto__(2)Object.getPrototypeOf(对象)一般用第二种,第一种不安全2.原型对象中的数据(1)对象中的数据(属性、方法等)(2)constructor(对象......
  • JavaScript精简(基于node.js)
    目录1、基本语法2、变量3、数据类型3.1、数字型Number3.2、字符串类型String3.3、布尔型Boolean3.4、Undefined、Null3.5、获取变量的数据类型3.6、数据类型的转化4、运......
  • Pure JavaScript Stars Generator All In One
    PureJavaScriptStarsGeneratorAllInOnepadStart&padEnd//constrating=stars=>`★★★★★☆☆☆☆☆`.slice(5-stars,10-stars);//constrating......
  • 千锋JavaScript学习笔记
    千锋JavaScript学习笔记目录千锋JavaScript学习笔记写在前面1.JS基础1.1变量1.2数据类型1.3数据类型转换1.4运算符1.5条件1.6循环1.7函数1.8对象数据类型1.9数......
  • JavaScript学习笔记—面向对象
    1.类的简介类是对象的模板,可以将对象中的属性和方法直接定义在类中,定义后,就可以直接通过类来创建对象。通过同一个类创建的对象,成为同类对象可以用instanceof来检查......
  • 关于javaScript中的__proto__和prototype
    区别:__proto__是浏览器对实例化对象中[[prototype]]属性的命名方式,__proto__是属于对象的属性,prototype是属于函数对象的属性。__proto__指向[函数名].prototype,[函数名]......
  • JavaScript知识总结
    文章目录1、什么是JavaScript1.1、概述1.2、历史2、快速入门2.1、引入JavaScript2.2、基本语法入门2.3、数据类型2.4、严格检查模式3、数据类型3.1、字符串......
  • javaScript中为什么字符串相减是NAN Why is “string” - “string” NaN?
    发现这个问题的背景是后端返回数据根据组排序,然后每个组中的对象按照某个字段进行排序显示一开始是这样的  并不生效修改后    排序生效。可以看到只......
  • [JavaScript]前端解析cookie为对象
    参考解析页面传参varcookie_str=document.cookievarcookie_arr=cookie_str.split(";")varcookie_obj={}for(vari=0;......