gpt4 book ai didi

javascript - 我能知道通用 getter/setter 在其主体中应用什么属性吗?

转载 作者:行者123 更新时间:2023-12-02 19:51:04 25 4
gpt4 key购买 nike

上下文 (this) 自然是请求属性的对象,但没有参数传递给 getter 函数。我希望能够在不使用闭包的情况下获取所请求的属性的名称,但看起来这是唯一的方法。

Object.defineProperty( someObj, "prop1", { get: genericGetter } );
Object.defineProperty( someObj, "prop2", { get: genericGetter } );

function genericGetter() {
// i want to figure out whether this is called on prop1 or prop2
}

最佳答案

Can I tell what property a generic getter/setter applies to in its body?

setter/getter 不是这样工作的。对象的属性可以具有 valueget 函数。如果该属性有一个,则读取该属性:

var x = obj.prop;

返回该。但是,如果属性具有 get 函数,则读取该属性会触发该函数。因此,如果必须动态计算某个属性的值,或者想要在读取该属性时执行某些操作,则可以使用 getter。

例如,.innerHTML需要一个getter,因为它的值不是静态存储的,而是在访问时计算的:

var html = div.innerHTML;

在这里,浏览器必须序列化 div 元素中包含的 DOM 结构。

因此,如果您想要一个 .get() 函数来检索各种属性(Backbone.js 有这样的函数),那么您就不需要寻找 getter。

您想要的最简单的实现是:

someObj.getProp = function ( name ) {
// perform required tasks
return this[ name ];
};

关于javascript - 我能知道通用 getter/setter 在其主体中应用什么属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9302535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com