gpt4 book ai didi

javascript - 原生 JavaScript 中是否有类似 prototype.toArray 的函数?

转载 作者:行者123 更新时间:2023-11-29 17:10:58 25 4
gpt4 key购买 nike

我想更改使用以下代码从 JavaScript 对象返回的值:

F.prototype.valueOf = function(){return "foo";}
F.prototype.toString = Id.valueOf();

“F”是 JavaScript 类,“foo”是我要返回的字符串。这在像这样调用警报时工作正常:

alert(F());    //alerts foo

但是有没有办法让一个对象的值可以是一个数组呢?也许像

F.prototype.valueOf = function(){return ["foo", "bar"];}
F.prototype.toArray = Id.valueOf();

?

最佳答案

valueOf 只能转换并返回原始值,因此您不能强制它返回一个 Array。您可以尝试使用 JSON.Stringify 返回一个 JSON 字符串,稍后可以在 1 上对其进行解析。另见 this article ,或 MDN documentation .

您当然也可以编写一个自定义的“getter”函数来检索您的自定义 valueOf,例如:

F.prototype.getValue = function() {return ['foo', 'bar']};

1 例如

var someobj = {
bar: 1, some: [1,2,3],
x: 'string', foo:[{a:1,b:2},2,3],
valueOf: function(){return JSON.stringify(this);}
};
someobj.valueOf();
//=> "{"bar":1,"some":[1,2,3],"x":"string","foo":[{"a":1,"b":2},2,3]}"

关于javascript - 原生 JavaScript 中是否有类似 prototype.toArray 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681311/

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