gpt4 book ai didi

javascript - 在 javascript 中应用 defineProperties 的用例是什么?

转载 作者:行者123 更新时间:2023-11-29 22:00:02 26 4
gpt4 key购买 nike

我有一个关于 javascript 的 ecmascript 5 方法的实际使用的一般性问题。

例如

Object.defineProperties(obj, value, config)

据我所知,javascript 是前端 Web 应用程序的驱动程序。定义变量常量真的没有很多用法吗?如果您要对属性进行分类,我可以看到可枚举性可能会派上用场。但为什么 defineProperty 如此冗长?

对于 getters 和 setters... 谁想要在 ecmascript 5 中隐藏这个功能,如果一些旧的浏览器运行 ecma3,getter 函数甚至可能不会出现。为什么不只使用普通的 getter 函数来实现相同的目的呢?而不是冒险行为?

最佳答案

首先,您的语法错误,您混合了 definePropertydefineProperties。正确的方法是:

Object.defineProperties(obj, props)
Object.defineProperty(obj, prop, descriptor)

There isn't really a lot of usage in defining variable constant?

嗯,@danronmoon disagrees .

I can see how enumerable might come in handy

是的,如果你想向Object这样的构造函数添加方法,但不希望for...in循环迭代,我认为不可枚举属性是完美的他们。

But why is defineProperty so verbose

我不觉得它太冗长。如果您的意思是通常首选的方式是 writable: true, configurable:true, enumerable:true 但它们默认为 false,我想那是因为这样您就可以创建使用点或括号表示法的属性

if some old browser runs ecma3, the getter function might not even occur

当然可以,但是遵循这个逻辑网络技术不会发展。

Why not just use a plain getter function to achieve the same

因为它更酷、更灵活、更强大,...

例如,它们可以更轻松地为缺失的原生属性制作垫片。如果没有 getter,你将如何填充 classList 属性?

关于javascript - 在 javascript 中应用 defineProperties 的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24337371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com