阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS object __lookupGetter__()

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

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

      概述

      **__lookupGetter__** 方法会返回当前对象上指定属性的属性读取访问器函数(getter)。

      语法

      obj.__lookupGetter__(sprop)
      

      参数

      sprop

      属性名

      示例

      var obj = {
          get foo() {
              return Math.random() > 0.5 ? "foo" : "bar";
          }
      };
      
      obj.__lookupGetter__("foo") 
      // (function (){return Math.random() > 0.5 ? "foo" : "bar"}) 
      

      附注

      **__lookupGetter__** 方法是非标准的,我们应该使用标准中定义的方法来完成同样的事情,那就是 Object.getOwnPropertyDescriptor() 方法:

      var obj = {
          get foo() {
              return Math.random() > 0.5 ? "foo" : "bar";
          }
      };
      
      Object.getOwnPropertyDescriptor(obj, "foo").get
      // (function (){return Math.random() > 0.5 ? "foo" : "bar"})
      
      

      如果那个访问器属性是继承来的,你还需要使用 Object.getPrototypeOf()

      var obj = {};
      var prototype = Object.getPrototypeOf(obj);
      Object.getOwnPropertyDescriptor(prototype, "foo").get 
      // function __proto__() {[native code]}
      
      

      规范

      不属于任何规范。

      相关链接

      目录
      目录