gpt4 book ai didi

相当于 Python 的 __setitem__ 的 JavaScript

转载 作者:太空狗 更新时间:2023-10-29 20:33:58 24 4
gpt4 key购买 nike

var obj = {}
obj.__setitem__ = function(key, value){
this[key] = value * value
}
obj.x = 2 // 4
obj.y = 3 // 9

JavaScript 没有 __setitem__,这个例子显然行不通。

在 python 中 __setitem__工作方式如下:

class CustomDict(dict):
def __setitem__(self, key, value):
super(CustomDict, self).__setitem__(key, value * value)

d = CustomDict()
d['x'] = 2 # 4
d['y'] = 3 # 9

是否可以在 JavaScript 中实现 __setitem__ 行为?所有棘手的解决方法都会有所帮助。

最佳答案

Is it possible to implement __setitem__ behavior in JavaScript?

没有。 JavaScript 中没有任意属性的 getter/setter。

在 Firefox 中,您可以使用 JavaScript 1.5+ 的 getter 和 setter 来定义 xy 属性,它们在分配时对它们的值进行平方,例如:

var obj= {
_x: 0,
get x() { return this._x; },
set x(v) { this._x=v*v; }
};
obj.x= 4;
alert(obj.x);

但是您必须提前为每个要使用的命名属性声明一个 setter。而且它不能跨浏览器工作。

关于相当于 Python 的 __setitem__ 的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712074/

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