首页 / 知识
如何枚举JavaScript对象的属性?
2023-04-16 18:05:00

How do I enumerate the properties of a JavaScript object?本问题已经有最佳答案,请猛点这里访问。
如何枚举javascript对象的属性? 我实际上想列出所有定义的变量及其值,但我已经了解到定义一个变量实际上会创建一个窗口对象的属性。 足够简单:
现在,您将无法通过这种方式获得私有变量,因为它们不可用。 编辑:@bitwiseplatypus是正确的,除非您使用 这就是说, 编辑2:@bitwiseplatypus提出了这样一种情况,即如果有人在某个时间点(比您最初(通过原型)向您的对象添加属性/方法时晚)将发生这种情况,虽然这确实可能导致意外行为,但我个人并不认为这完全是我的问题。只是意见问题。此外,如果我在构建对象的过程中使用原型设计事物,并且有代码迭代对象的属性,并且我想要所有继承的属性,那该怎么办?我不会用 使用
要避免在枚举中包含继承的属性,请检查
编辑:我不同意JasonBunting的说法,即我们不需要担心枚举继承的属性。枚举继承的属性是有危险的,因为它可以改变代码的行为。 不管这个问题是否存在于其他语言中,事实是它存在,而且javascript特别容易受到攻击,因为对对象原型的修改会影响子对象,即使修改是在实例化之后进行的。 这就是为什么javascript提供 已经多次提出的标准方法是:
然而,InternetExplorer6、7和8在JavaScript解释器中有一个bug,它的作用是不枚举某些键。如果运行此代码:
如果会在除IE.IE之外的所有浏览器中警告"12",则会忽略此键。受影响的关键值包括:
为了安全起见,你必须使用如下工具:
好消息是,ecmascript5定义了 在现代浏览器(EcmaScript 5)中,要获取所有可枚举属性,可以执行以下操作: 对象键(obj)(检查链接以获取旧浏览器上向后兼容性的代码段) 或者获取不可枚举的属性: 对象.getownprotynames(obj) 检查ECMAScript 5兼容性表 其他信息:什么是可枚举属性? 我认为一个让我吃惊的例子是相关的:
但令我惊讶的是,输出
为什么?页面上的另一个脚本扩展了对象原型:
简单的javascript代码:
jQuery:
我找到了它… 以下是枚举对象属性的方法:
如果使用的是underline.js库,则可以使用功能键:
python的dict有"keys"方法,这非常有用。我认为在javascript中我们可以有这样的功能:
编辑:但是@carlos ruana的答案非常有效。我测试了object.keys(window),结果是我所期望的。 5年后编辑:扩展 您可以使用循环的 如果要使用数组,请使用: 引用object.keys()。 如果您试图枚举属性以便针对对象编写新代码,我建议使用类似Firebug的调试器来直观地查看它们。 另一种方便的技术是使用原型的object.tojson()将对象序列化为json,它将同时显示属性名和值。
http://www.prototypejs.org/api/object/tojson 我仍然是javascript的初学者,但我编写了一个小函数来递归地打印对象及其子对象的所有属性:
|
最新内容
相关内容
linux变量释放命令?
linux变量释放命令?,系统,环境,名称,工具,官网,简介,变量,环境变量,命令,内存,如何手动释放Linux内存?1、也就是说可以通过修改/proc中的文件,linux调出变量的命令?
linux调出变量的命令?,系统,工作,工具,信息,地址,代码,标准,名称,官网,命令,linux环境变量怎么设置方法方法一:用export命令,输入“export PATH=linux无效对象的命令?
linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,linux疑问:普通用户的ifconfig命令无法执行,如何解决?建议这个操linux命令主机名变量?
linux命令主机名变量?,系统,主机名,查询系统,命令,终端,编辑,提示符,根目录,文件,用户,linux如何修改主机名首先,以 root 用户身份登录 Red Hatlinux命令查看包属性?
linux命令查看包属性?,时间,系统,信息,状态,命令,文件,通讯录,管理,情况,标准,Linux文件相关命令命令一:cat cat命令应该是在Linux中查看文件内linux变量是一个命令?
linux变量是一个命令?,系统,信息,变量,名称,官网,地址,环境,代码,地方,命令,$在linux里什么意思所谓$:也就是咱们平常说的“命令提示符”也就是linux中变量取余命令?
linux中变量取余命令?,地址,工作,系统,数据,信息,命令,分析,目录,控制台,文件,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令加载变量的linux命令?
加载变量的linux命令?,工具,系统,名称,环境变量,环境,命令,用户,文件,变量,方法,linux如何添加自定义变量1、方法一:用export命令,输入“exportlinux变量赋值命令?
linux变量赋值命令?,标准,数据,数字,时间,系统,名称,变量,赋值,代码,环境,linux环境下的C语言代码中如何通过键盘输入数值为变量赋值?1、在C语linux内核属性命令?
linux内核属性命令?,系统,地址,时间,信息,标准,管理,数据,工作,百分比,内核,一般优化linux的内核,需要优化什么参数1、说起优化,其实最好的优化linux设置变量的命令?
linux设置变量的命令?,工具,环境变量,系统,环境,命令,方法,终端,文件,路径,有效期限,Linux操作系统下三种配置环境变量的方法修改.bashrc文件linux命令替换变量值?
linux命令替换变量值?,系统,档案,密码,位置,情况,发行,命令,变量,脚本,内容,Linux系统Shell命令常用功能使用详解1、Shell提供了参数置换功能