函数内部的Javascript getter函数

时间:2017-02-02 14:22:48

标签: javascript function getter anonymous

我试图通过函数创建我的对象,但我无法弄清楚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函数?

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

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);

答案 1 :(得分:0)

也许这对你有用:

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

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