gpt4 book ai didi

javascript - javascript 中具有同名的 getter 和函数

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

我需要做出改变,但在一段时间内继续提供向后兼容性,但我不知道如何实现这一点。

我有一个像这样的对象:

MyObject = (function() {
// vars here and there

var myVar

// a bunch of code

return {
get myVar() { return myVar },
myVar: function() { return myVar }
}

}())

这行不通。我希望能够通过

获得 myVar

MyObject.myVar

MyObject.myVar()

这可能吗?更好的是,是否有可能实现这一目标并使其跨浏览器兼容? (现在我知道 Internet Explorer 不支持 get 表示法)

谢谢。

更新:

因为这似乎不可能,有什么方法可以使我现在拥有的 get myVar() 浏览器与 Internet Explorer 兼容?因此所有浏览器都可以访问 MyObject.myVar

只要我可以继续为 myVar 提供 getter 并且它与 Internet Explorer 兼容,就不需要转移到 myVar() 但我找不到可行的解决方案来实现当前的方式 (MyObject.myVar)除了迁移到类似函数的 getter 之外,兼容。

最佳答案

不,这是不可能的。在javascript中,没有字段方法的概念,只有对象的属性,无论属性是值还是函数(函数也是一个对象。)

如果 MyObject.myVar 不是函数,则 MyObject.myVar() 将产生错误。

你唯一能做的就是拥有两个属性。

MyObject.myVar

还有

MyObject.getMyVar()

关于javascript - javascript 中具有同名的 getter 和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881505/

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