问题标签 [defineproperty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
39 浏览

javascript - 引用 Object.defineProperty(#value) 里面的当前实例

我试图使该方法getColor()不可配置,但是当我尝试使用this.color它来引用 Fruit“类”的当前实例属性时,它不起作用。好像this没有引用Fruit实例。如何引用实例?

为属性定义的函数体不是突变体,这里只是一个例子

0 投票
3 回答
252 浏览

javascript - 如何使用 object.defineproperty 在 javascript 中定义 getter 和 setter

我一直在尝试使用 object.defineproperty 编写 getter 和 setter,但不能。我一直在尝试这个示例,但由于没有定义 firstName 属性而引发错误。有人可以帮我吗

谢谢

0 投票
2 回答
170 浏览

javascript - 如何防止对象属性不在javascript中扩展

我试图密封一个对象属性。

我的问题是,在这里我给了 Object.seal(personObject),这个特定的对象是密封的,不允许在这个对象中配置或进行任何扩展,但正如我没有在 personObject_2 上提到的那样,它确实允许扩展或配置

我怎样才能在原型上做到这一点。我的意思是任何类型的人都应该拥有/尊重这个印章。我们能实现这样的行为吗

谢谢

0 投票
1 回答
126 浏览

javascript - for 循环中的 Object.defineProperty

在我的代码中,我有一个对象,

我想定义一些这样的属性:

它对我来说很好,但它只是一段代码。我想,让我的代码更短会更好,我决定不只是复制和重命名它,而是使用这样的 for 循环:

但这只是一个问题。我从最后一个项目中得到所有项目 inf 的相同值。有没有可能解决这个问题?

0 投票
2 回答
54 浏览

javascript - 使属性可调用或不可调用

我想让一个属性要么可调用,要么不可调用。例如:

这样我就可以做到:

test.string // initially returns 'here is text'

test.string('new text here') // sets obj.someString to 'new text here'

test.string // returns 'next text here'

上面的代码目前没有按照我想要的方式运行。无论如何在JavaScript中做这样的事情吗?使用Object.defineProperty或不使用

0 投票
2 回答
116 浏览

javascript - 如何使属性/方法可调用或不可调用?

我想实现这个功能:

  1. 我有一个对象var obj = {};
  2. 我在那个 obj 上有三个属性,obj.zero& obj.one&obj.binaryString

    • obj.zero&obj.one是方法,obj.binaryString而是字符串

当我链接属性时,我希望它们将各自的数字添加到binaryString. 例如:

obj.one.zero.zero.one=> 使obj.binaryString=1001

obj.one.zero.one.one.zero=> 使obj.binaryString=10110

我已经实现了上述功能:

现在我想注销已完成的binaryString,加上additionalString我用下面的代码完成的:

所以用这个当前的代码我可以做到这一点:

我想要做的是摆脱log和使oneandzero方法可调用或不可调用,以便我可以实现此功能:

我怎样才能做到这一点?

我相信它的功能类似于Chalk的工作原理:

0 投票
2 回答
2841 浏览

typescript - 打字稿装饰器和 Object.defineProperty 奇怪的行为

我正在尝试实现一个覆盖属性 (1) 并定义隐藏属性 (2) 的装饰器。假设以下示例:

哪个输出:

但是,我宁愿期望:

因为enumerabletrue为了propA

现在,如果getset

现在的输出是:

虽然enumerable被明确设置为falsefor _propAin f

因此,尽管这些行为可能很奇怪,但我想了解这里发生了什么,以及我将如何实现我想要得到的东西?

0 投票
1 回答
72 浏览

javascript - How to allow to add property on object but stop Modifying set of properties on object

I have some global object CD and it has set of properties as follows:

#xA;

I want user to allow add properties to cd and cd.config but properties cd.a, cd.b, cd.config.title to be sealed (no modification allowed) .

User should not be able to delete window.cd or these properties as well (Other properties he can delete or modify).

I tried with following:

#xA;

but it thrown following error:

window.cd.config.title.seal is not a function

0 投票
1 回答
83 浏览

javascript - defineProperty 描述符参数和 Object.prototype 的困境

defineProperty用来创建对象属性,函数中的descriptor参数是否一定需要是object. 这是代码:

为什么我们必须将一个Object传递给Descriptor参数

我有以下两个代码片段,我正在创建一个构造函数,然后使用它创建对象。这两个代码在控制台中返回相同的输出。使用.prototype.Methodname会改变什么吗?

1

2

代码用法如下:

0 投票
2 回答
5249 浏览

typescript - TypeScript:如何向内置类添加静态方法

无论如何,是否可以向 , , 等类型添加一些Date静态String方法Array

例如,我想向类添加方法todayDate而在 JavaScript 中,我可以简单地向它添加一个属性,或者我可以使用 Object.defineProperty:


但无论如何我都没有找到TypeScript关于这个新静态成员的信息。我错过了什么还是我用谷歌搜索的方式不对?