aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/javascript/reference/global_objects/object/__lookupgetter__/index.html
blob: 5c722986ef0f5e4fe6710cff17680fd07691aaab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
title: Object.prototype.__lookupGetter__()
slug: Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__
translation_of: Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__
---
<div>{{JSRef("Global_Objects", "Object")}} {{ Non-standard_header }} {{ Deprecated_header }}</div>

<h2 id="Summary">概述</h2>

<p><code><strong>__lookupGetter__</strong></code> 方法会返回当前对象上指定属性的<strong>属性读取访问器函数(getter)。</strong></p>

<h2 id="Syntax">语法</h2>

<pre class="syntaxbox"><code><em>obj</em>.__lookupGetter__(<em>sprop</em>)</code></pre>

<h3 id="Parameters">参数</h3>

<dl>
 <dt><code>sprop</code></dt>
 <dd>属性名</dd>
</dl>

<h2 id="Examples">示例</h2>

<pre class="brush: js">var obj = {
    get foo() {
        return Math.random() &gt; 0.5 ? "foo" : "bar";
    }
};

obj.__lookupGetter__("foo")
// (function (){return Math.random() &gt; 0.5 ? "foo" : "bar"}) </pre>

<h2 id="Description">附注</h2>

<p><code><strong>__lookupGetter__</strong></code> 方法是非标准的,我们应该使用标准中定义的方法来完成同样的事情,那就是 {{jsxref("Object.getOwnPropertyDescriptor()")}} 方法:</p>

<pre class="brush: js">var obj = {
    get foo() {
        return Math.random() &gt; 0.5 ? "foo" : "bar";
    }
};

Object.getOwnPropertyDescriptor(obj, "foo").get
// (function (){return Math.random() &gt; 0.5 ? "foo" : "bar"})
</pre>

<p>如果那个访问器属性是继承来的,你还需要使用 {{jsxref("Object.getPrototypeOf()")}}</p>

<pre class="brush: js">var obj = {};
var prototype = Object.getPrototypeOf(obj);
Object.getOwnPropertyDescriptor(prototype, "foo").get
// function __proto__() {[native code]}
</pre>

<h2 id="Specifications">规范</h2>

<p>不属于任何规范。</p>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

{{Compat}}

<h2 id="See_also">相关链接</h2>

<ul>
 <li>{{jsxref("Object.__lookupSetter__", "Object.prototype.__lookupSetter__()")}}</li>
 <li>{{jsxref("Operators/get", "get")}} 运算符</li>
 <li>{{jsxref("Object.getOwnPropertyDescriptor()")}}{{jsxref("Object.getPrototypeOf()")}}</li>
 <li>{{jsxref("Object.__defineGetter__", "Object.prototype.__defineGetter__()")}}</li>
 <li>{{jsxref("Object.__defineSetter__", "Object.prototype.__defineSetter__()")}}</li>
 <li><a href="/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters" title="JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters">JS 指南:定义访问器属性</a></li>
</ul>