gpt4 book ai didi

javascript - JS : how to define properties on numeric variables

转载 作者:行者123 更新时间:2023-11-28 06:46:20 24 4
gpt4 key购买 nike

我有几个类型为 number 的变量(或者就此而言也是字符串)。我想向这些变量添加一些元数据。

当我尝试使用Object.defineProperty(myvar, "prop", {/*getter & setter*/})时它给出了 myvar 不是对象的错误。

如何使用 getter 和 setter 方法在非对象上定义属性?

我不想向 Number.prototype 添加任何内容因为我只想要少数变量的这些属性。

最佳答案

您可以通过原型(prototype)继承来做到这一点。像这样使用 Number.prototype:

var proto = Object.create(Number.prototype);
function MyNumber() {
}
MyNumber.prototype = proto;
MyNumber.prototype.constructor = MyNumber;
MyNumber.prototype.someOwnMethod = function () {
}
// and so on
var myVar = new MyNumber();
Object.defineProperty(myvar, "prop", {/*getter & setter*/});

您将在原型(prototype)中获得一个对象以及 Number 的方法。

或者,如果您不需要任何自己的方法,只需使用 Number 构造函数而不是数字文字。

var myVar = new Number();
Object.defineProperty(myvar, "prop", {/*getter & setter*/});

字符串也一样:

    var myVar = new String();

关于javascript - JS : how to define properties on numeric variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33388246/

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