gpt4 book ai didi

javascript - 在创建它时引用 javascript 对象属性(使用 this)

转载 作者:搜寻专家 更新时间:2023-11-01 04:58:29 25 4
gpt4 key购买 nike

你能解释一下为什么这个对象不理解“this”吗?

var circle = {
radius : 20,
x : 100 - this.radius / 2,
y : 100 - this.radius / 2,
}

console.log(circle.x) // returns NaN, why?

最佳答案

  1. 因为这不是 this 在 JS 中的工作方式。 this 仅当您以某种方式导致您的对象被分配为函数调用上下文的 this 值时,才会成为对您对象的引用。

  2. 您不能在创建对象时从其自身引用对象字面量,因为它尚不存在。

如果您要创建圆圈,您可以考虑使用构造函数:

 function Circle(radius) {
this.radius = radius,
this.x = 100 - this.radius / 2,
this.y = 100 - this.radius / 2,
}

var circle_20 = new Circle( 20 );

因为您正在调用 Circle 作为使用 new 的构造函数,构造函数调用中的 this 将是对正在创建的对象的引用.该对象被隐式返回,因为您没有显式返回其他一些对象。

关于javascript - 在创建它时引用 javascript 对象属性(使用 this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366116/

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