javascript - 在普通的 JavaScript 中是否有像prototype.toArray 这样的函数?

标签 javascript arrays string class object

我想更改从 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/

相关文章:

javascript - 通过 jQuery 根据浏览器宽度(调整大小)切换类 onclick

javascript - 在 AJAX JSF 请求后重新加载 Javascript

javascript - 解析 json 对象以比较其中的项目

javascript - 如何更改订单键和值数组

java - 正则表达式用图像标签替换特定字符串?

javascript - 在javascript中获取两个不同字符之间的字符串

javascript - 防止对象函数内的事件覆盖 "this"

java - 我的二维数组行不旋转

c# - String.Substring解释

java - java中字符串数组元素之和