阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS object __defineGetter__()

      非标准
      该特性是非标准的,请尽量不要在生产环境中使用它!

      已废弃
      该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

      概述

      **__defineGetter__** 方法可以将一个函数绑定在当前对象的指定属性上,当那个属性的值被读取时,你所绑定的函数就会被调用。

      语法

      obj.__defineGetter__(prop, func)
      

      参数

      prop

      一个字符串,表示指定的属性名。

      func

      一个函数,当 prop 属性的值被读取时自动被调用。

      描述

      __defineGetter__ 方法可以为一个已经存在的对象设置(新建或修改)访问器属性,对象字面量中的 get 语法 只能在新建一个对象时使用。

      示例

      // 请注意,该方法是非标准的:
      
      var o = {};
      o.__defineGetter__('gimmeFive', function() { return 5; });
      console.log(o.gimmeFive); // 5
      
      
      // 请尽可能使用下面的两种推荐方式来代替:
      
      // 1. 在对象字面量中使用 get 语法
      var o = { get gimmeFive() { return 5; } };
      console.log(o.gimmeFive); // 5
      
      // 2. 使用 Object.defineProperty 方法
      var o = {};
      Object.defineProperty(o, 'gimmeFive', {
        get: function() {
          return 5;
        }
      });
      console.log(o.gimmeFive); // 5
      
      

      规范

      不属于任何规范。

      相关链接

      目录
      目录