你能解释一下为什么这个对象不理解'这个'吗?
var circle = {
radius : 20,
x : 100 - this.radius / 2,
y : 100 - this.radius / 2,
}
console.log(circle.x) // returns NaN, why?
Run Code Online (Sandbox Code Playgroud)
因为这不是thisJS的工作方式.this只会是你的对象的引用,当你以某种方式导致你的对象被分配作为this一个函数的调用上下文的价值.
在创建对象文字时,您无法引用该对象文字,因为它尚不存在.
如果您正在创建圈子,则可以考虑使用构造函数:
function Circle(radius) {
this.radius = radius,
this.x = 100 - this.radius / 2,
this.y = 100 - this.radius / 2,
}
var circle_20 = new Circle( 20 );
Run Code Online (Sandbox Code Playgroud)
因为您正在Circle使用构造函数进行调用new,所以this在构造函数内部调用将是对正在创建的对象的引用.由于您没有显式返回其他对象,因此隐式返回该对象.