在创建它时引用javascript对象proprty(使用它)

Asa*_*atz 4 javascript oop

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

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)

use*_*716 5

  1. 因为这不是thisJS的工作方式.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 );
Run Code Online (Sandbox Code Playgroud)

因为您正在Circle使用构造函数进行调用new,所以this在构造函数内部调用将是对正在创建的对象的引用.由于您没有显式返回其他对象,因此隐式返回该对象.