js属性对象的hasOwnProperty方法的使用

yizhihongxing

js对象中的属性可以分为两类,一类是对象自身定义的属性,另一类是从原型链中继承而来的属性。js属性对象的hasOwnProperty()方法用于判断一个属性是否是对象自身定义的属性,其用法如下:

对象.hasOwnProperty(属性名称)

其中,对象为需要检查的对象,属性名称是需要检查的属性,如果该属性是对象自身定义的属性,则返回true,否则返回false

下面通过两条示例来说明该方法的使用。

示例1:

let object1 = {
  name: "小明",
  age: 20
};
console.log(object1.hasOwnProperty("name")); // true
console.log(object1.hasOwnProperty("toString")); // false

在上述示例中,定义了一个名为object1的对象,其中有两个属性,一个是自身定义的name属性,另一个是从对象原型继承而来的toString属性。接下来通过hasOwnProperty()方法判断nametoString是否为自身定义的属性,打印结果如下:

true
false

可以看到,对于自身定义的name属性,其返回结果为true,而对于从原型链中继承而来的toString属性,其返回结果为false,说明该方法可以很好地区分实例属性和原型属性。

示例2:

function Student(name, age) {
  this.name = name;
  this.age = age;
}
Student.prototype.sayHello = function() {
  console.log(`你好,我叫${this.name},今年${this.age}岁了。`);
}
let stu1 = new Student("小明", 20);
console.log(stu1.hasOwnProperty("name")); // true
console.log(stu1.hasOwnProperty("sayHello")); // false

在上述示例中,定义了一个名为Student的构造函数,并通过原型链为其定义了一个方法sayHello。接下来创建了一个名为stu1的对象,并通过hasOwnProperty()方法判断stu1的属性namesayHello是否是自身定义的属性,打印结果如下:

true
false

可以看到,对于自身定义的属性name,其返回结果为true,而对于从原型链中继承而来的属性sayHello,其返回结果为false,这再一次证明了该方法可以区分实例属性和原型属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js属性对象的hasOwnProperty方法的使用 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • iframe 父窗口和子窗口相互的调用方法集锦

    当我们在网页中需要引用其他网页或第三方组件时,就可以使用iframe标签来嵌入其他页面。使用iframe标签可以让页面显得更加动态,同时也能添加一些新的功能。本文将详细讲解iframe父窗口和子窗口相互调用的方法。 iframe 的基本用法 在HTML中,使用iframe标签可以将一个网页嵌入到另一个网页中。 例如: <html> <hea…

    JavaScript 2023年6月10日
    00
  • 浅析JavaScript中的对象类型Object

    下面我将详细讲解“浅析JavaScript中的对象类型Object”的完整攻略。 1. 什么是对象? 对象是 JavaScript 的核心数据类型之一,它是一组属性的集合,每个属性都由键值对组成。其中,键是字符串类型,值可以是任何数据类型,也可以是另一个对象。对象是使用大括号{}定义的。 例如,以下就是一个简单的对象: let person = { name…

    JavaScript 2023年5月27日
    00
  • JS常见错误(Error)及处理方案详解

    JS常见错误(Error)及处理方案详解 JavaScript是一种弱类型语言,当我们编写JavaScript代码时,难免会出现错误。遇到这些错误时,可以通过了解常见的错误类型以及如何处理它们来提高我们的调试能力和代码质量。本文将介绍几种常见的JS错误,以及如何处理它们。 类型错误(TypeError) 当我们试图在一个不允许使用特定方法或属性的数据类型上使…

    JavaScript 2023年5月18日
    00
  • JavaScript中从setTimeout与setInterval到AJAX异步

    JavaScript中从setTimeout与setInterval到AJAX异步 setTimeout与setInterval setTimeout setTimeout是JavaScript中的一个定时器函数,它接受2个参数:一个函数和一个时间(单位为毫秒)。当函数被发送到浏览器的事件队列时,它会在指定的时间之后执行。 setTimeout(functi…

    JavaScript 2023年6月11日
    00
  • 浅谈ECMAScript 中的Array类型

    下面我来详细讲解一下“浅谈 ECMAScript 中的 Array 类型”。 什么是 Array 类型 在 ECMAScript 中,Array 类型是一种特殊的对象,用于表示一组数据的集合。数组中的数据可以是任意类型的,包括数字、字符串、布尔值、对象等等。 数组中的数据是按照顺序保存的,每一个数据都有一个对应的索引值,从0开始递增。我们可以通过索引值来访问…

    JavaScript 2023年5月27日
    00
  • JS数组去重的常用4种方法

    下面我就为大家详细讲解“JS数组去重的常用4种方法”的完整攻略。 一、JS数组去重的常用4种方法 数组去重是我们在JS开发中常会用到的一个功能,下面介绍4种去重方法。 1. Set Set是ES6新增的数据类型,它可以实现数组去重。 let arr = [1,2,2,3,3,4,5]; let result = […new Set(arr)]; cons…

    JavaScript 2023年5月27日
    00
  • JavaScript编程中window的location与history对象详解

    JavaScript编程中window的location与history对象详解 在JavaScript编程中,window对象是一个非常重要的对象,它是代表当前浏览器窗口的一个全局对象。其中,window对象的location属性和history属性也是常用的对象,本文将详细讲解这两个对象的用法和特点。 location对象 location对象代表当前浏…

    JavaScript 2023年6月11日
    00
  • JS获取一个表单字段中多条数据并转化为json格式

    要获取一个表单字段中多条数据并转化为JSON格式,可以按如下步骤进行: 获取表单字段的值 首先,需要获取表单字段的值。可以使用document.getElementsByName()方法来获取表单字段的所有值。 例如,表单中有一个名称为“fruit”的checkbox列表,它包含多个不同的水果,可以使用以下代码获取所选水果的值: var fruit = do…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部