gpt4 book ai didi

javascript - 如何在没有方法的情况下将对象属性 'talk' 相互转换?

转载 作者:行者123 更新时间:2023-12-02 16:44:42 27 4
gpt4 key购买 nike

我知道一旦调用函数,this 的上下文就会更改为对象,但如何在无需创建方法的情况下模拟该上下文?

var object = {
x: 1,
y: object.x, // will NOT work
z: function () {
return this.x // works fine
}
}
console.log(object.z())

最佳答案

问题是,当创建y时,object还不存在。它仍在创建中。当您实际调用 object.z() 时,该对象已经创建并且可以工作。

编辑:您可以执行类似的操作,为该对象创建构造函数:

function getObject(){
this.x=1;
this.y=this.x;
return this;
}

var object = getObject();
alert(object.y)

或者这样,如果您在编写代码时知道该值应该是什么:

var object = {
x: 1,
y: 1,
}
alert(object.y)

首先创建变量。如果您在创建对象时知道 x 应该是什么,而不是在编写代码时知道 x 应该是什么,那么这可能就是您想要的。

var one=1;

var object = {
x: one,
y: one,
}
alert(object.y);

所有这些都会将 1 放入 y 中。

你也可以试试这个。如果两个值相同,为什么需要两者? (也许他们会独立改变?我不知道这会发生在哪里,但这是可能的)

var object={
x: 1
}
alert(object.x);

关于javascript - 如何在没有方法的情况下将对象属性 'talk' 相互转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209114/

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