Object.prototype.hasOwnProperty.call(item, key) 作用与用途

embedded/2024/12/27 18:36:40/

在 JavaScript 中,Object.prototype.hasOwnProperty.call(item, key) 是一种检查对象 item 是否具有特定属性 key 作为自身的属性(而不是继承自原型链)的方法。这种调用方式是安全的,特别是在处理可能被修改过原型链的对象时。

解释和用途

typescript">Object.prototype.hasOwnProperty

这是一个方法,用于检查调用它的对象是否拥有某个特定的属性作为自身的直接属性,而不是继承自其原型链。
例如,如果你有一个对象 obj = {a: 1},那么 obj.hasOwnProperty(‘a’) 返回 true,因为 a 是 obj 的直接属性。

typescript">.call(item, key):

call() 是一个函数,它允许你调用一个具有给定 this 值和单独提供的参数的函数。
在这里,Object.prototype.hasOwnProperty.call(item, key) 的意思是调用 hasOwnProperty 方法,将 item 作为 this 的上下文,并将 key 作为参数传递给这个方法。

这样做的好处是即使 item 对象本身没有 hasOwnProperty 方法(例如,如果 item 是通过 Object.create(null) 创建的),你也可以安全地检查 item 是否有 key 属性。

使用场景

在你的代码中,这个方法用于确保只处理 item 对象自己拥有的属性,而不是从其原型链继承的属性。这在处理纯数据对象时特别有用,尤其是当你不确定对象的结构或来源时。通过这种方式,你可以避免错误地处理那些可能来自原型链的属性,这些属性可能不是你想要直接操作的数据。

示例

假设你有一个对象 item,你想要遍历它的所有自有属性,并且只处理那些非空且不是 server_name 或 index 的属性:

typescript">for (const key in item) {if (Object.prototype.hasOwnProperty.call(item, key) &&key !== 'server_name' &&key !== 'index' &&item[key] !== null &&item[key] !== '') {// 处理 item[key]}
}

这段代码确保了你只处理那些确实属于 item 的属性,并且排除了那些可能不需要处理的特定属性或空值。这是一种非常严谨和安全的方式来处理对象属性,特别是在不完全控制对象内容的情况下。


http://www.ppmy.cn/embedded/148941.html

相关文章

css省略号后面跟图标

纯css实现省略号后面跟图标 不溢出图标跟在文字后面&#xff0c;超过两行省略号表示&#xff0c;并在后面跟图标 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"…

SpringAI人工智能开发框架006---SpringAI多模态接口_编程测试springai多模态接口支持

可以看到springai对多模态的支持. 同样去创建一个项目 也是跟之前的项目一样,修改版本1.0.0 这里 然后修改仓库地址,为springai的地址 然后开始写代码

【每日学点鸿蒙知识】上架流程、h5返回收拾拦截、两个枚举类型之间转换、hvigorw命令、绘制本地图片

1、HarmonyOS 上架流程&#xff1f; 上架流程&#xff0c;请参考文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-publish-app-V5 上架的一些条件&#xff0c;也请 这边悉知&#xff0c;参考链接&#xff1a;https://developer.huawe…

加电:DETR论文阅读

DETR&#xff1a;End ot End object detection with transformer. 主要工作 这篇文章的主要工作在于&#xff0c;是将transformer引入到目标检测这一类计算机视觉的任务中&#xff0c;transformer的优势在于&#xff1a;模型的通用性和高上限(gpt是最好的例子&#xff0c;算力…

软件工程课程知识点

一、软件与软件工程概述 1. 软件的组成与演化 软件的构成 Software(软件) 通常由 computer programs(计算机程序)、data structures(数据结构)、software description information(软件描述信息) 组成&#xff0c;或者说由 set of programs(程序集合)、documentation(文档) …

【首发1day详情】CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

绪论 如果各位师傅觉得有用的话&#xff0c;可以给我点个关注~~ 如果师傅们有什么好的建议也欢迎联系我~~ 感谢各位师傅的支持~~ 正文部分 声明 1. 本漏洞根据网上的资料和我自己的理解去复现&#xff0c;并不确定就是cve-2024-51479的最终细节2. 尝试在互联网进行复现&#xf…

C-5 B样条曲线

C-5 B样条曲线 N i , 0 ( u ) { 1 , u i ≤ u < u i 1 0 , o t h e r s N_{i,0}(u)\left\{\begin{matrix} 1 , \quad u_i\le u <u_{i1} \\0 ,\quad others \qquad \quad\end{matrix}\right. Ni,0​(u){1,ui​≤u<ui1​0,others​ N i , p ( u ) u − u i u i p −…

机器学习之PCA降维

主成分分析&#xff08;PCA&#xff0c;Principal Component Analysis&#xff09; 主成分分析&#xff08;PCA&#xff09;是一种常见的无监督学习技术&#xff0c;广泛应用于数据降维、数据可视化以及特征提取等任务。PCA的目标是通过线性变换将数据从高维空间映射到低维空间…