Javascript getter 函数内的函数

Javascript getter function from within function

我正在尝试通过函数创建我的对象,但我无法弄清楚 getter 函数的语法。

var myObject = 
{
  0:123,

  get a()
  {
        return this[0];
  }
}


console.log("This works: " + myObject.a);


function test()
{
    this[0] = 123;

// error
    this.a = get function()
  {
  return this[0];
  };
}


var myTest = new test();

console.log(myTest.a);

在测试函数中,get 函数的赋值会抛出缺少分号的错误,如果我删除关键字 "function",它会说 get 未定义。

如何将 getter 函数分配给函数中的当前对象?

您可以尝试这样的操作:

var myObject = 
{
  0:123,

  get a()
  {
        return this[0];
  }
}


console.log("This works: " + myObject.a);


function test()
{
    this[0] = 123;

    Object.defineProperties(this, {"a": { get: function () { 
        return this[0]; 
    }}});   
}


var myTest = new test();

console.log(myTest.a);

也许这对你有用:

      function test()
      {
          this[0] = 123;

          Object.defineProperty(this, "a", { get: function () { return this[0]; } });
      }