gpt4 book ai didi

javascript - 如何在对象的另一个键中使用一个键的值?

转载 作者:行者123 更新时间:2023-11-30 12:34:21 27 4
gpt4 key购买 nike

这个问题看起来很困惑,所以让我解释一下:

我正在处理这段代码:

sy: 100,
sx: 50,

x: 30,
y: height - this.sy,

我在函数中使用了“y”,但该函数似乎不起作用,所以我使用了 alert(y);它告诉我“v”的值是“NaN”。然后我使用 typeof 运算符测试了“y”,它告诉我它是“数字”类型。我知道数字可以是“数字”类型,但仍然不是数字,所以我意识到问题出在“this.sy”部分。我认为'this'仅用于功能,那么我如何在仍在数组内的同时访问'sy'? (高度已经在数组外定义)

最佳答案

你可以使用 setter/getter :

var o = {sy: 100,
sx: 50,

x: 30,
get y() { return height - this.sy },
};

稍后您可以将其用作普通属性:

height = 10;
o.y //gives -90

您不能在函数外使用 this,因为在函数外它只是一个全局对象。因此,在您的情况下,this.sy 的值是 undefined 并且 100-undefinedNaN

您甚至可以通过定义 setter 使 y 可设置:

var o = {sy: 100,
sx: 50,

x: 30,
get y() { return height - this.sy },
set y(val) {Object.defineProperty(this, 'y', {value: val})},
};

关于javascript - 如何在对象的另一个键中使用一个键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26576151/

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