gpt4 book ai didi

javascript - 如果对象的成员之间存在依赖关系,是否可以使用文字符号初始化对象?

转载 作者:行者123 更新时间:2023-12-02 18:46:53 24 4
gpt4 key购买 nike

假设我有一个这样的对象

a = {b = function() { return 1 }, c: 2, f: 3}
a.z = a.b()

有没有办法用对象文字符号的单个赋值来编写它?类似于:

a = {b: function() { return 1 }, c: 2, f: 3, z: this.b()}

显然这不起作用,因为 this 仍然绑定(bind)到定义对象的范围,而不是对象本身。 a.b() 也不起作用,因为 a 尚未定义。

我实际上正在使用 CoffeeScript,但我非常确定,如果有一种巧妙的方法可以在纯 JavaScript 中执行此操作,那么在 CoffeeScript 中它也会看起来更短且更“实用”。

最佳答案

您可以利用 JS 的泄漏赋值来将属性值记住到对象文字中的另一个变量:

a = { b: b = function() { return 1 }, c: 2, f: 3, z: b() };

请注意,如图所示,b 是全局变量,因此您应该使用类似“var b, a=”(其余代码如图所示)的内容来防止泄漏。

关于javascript - 如果对象的成员之间存在依赖关系,是否可以使用文字符号初始化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16286467/

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