gpt4 book ai didi

JavaScript 根据方法定义属性

转载 作者:行者123 更新时间:2023-11-28 12:52:11 24 4
gpt4 key购买 nike

请注意,此问题未由 Self-references in object literals / initializers因为该问题涉及根据其他属性而不是方法来定义属性。

此外,How does the "this" keyword in Javascript act within an object literal?对主题的描述太高级了,我无法解决我的用例。

在Python中,我可以这样做:

class Test:
def __init__(self):
self.id = self.get_id()

def get_id(self):
return 10

t = Test()
print(t.id)

这意味着可以根据同一对象的方法来定义对象属性。

在 JavaScript 中,它不起作用:

var Test = {
id : this.getId(),
getId : function() {
return 10;
}
};

给出script.js:47 Uncaught TypeError: this.getId is not a function

我尝试在方法定义之后定义id,但没有成功。

请问如何在 JavaScript 中执行此操作?

最佳答案

另一个答案(Evgeny Yudin)更简单 - 但这是使用类的替代方案,可能会增加您的理解。

class Test {
constructor() {
this.id = this.getId();
}
getId() {
return 10;
}
}

console.log((new Test()).id); //outputs 10

关于JavaScript 根据方法定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60310152/

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