gpt4 book ai didi

javascript - 如何在javascript中将文字对象转换为用户定义的对象?

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

在编写大量利用 JSON/AJAX 的 Web 应用程序时,我发现自己返回了大量文字 javascript 对象 (JSON)。例如,我可能会从 GetCats.asp 请求所有的猫。它会返回:

[  { 'id': 0, 'name': 'Persian' },  { 'id': 1, 'name': 'Calico' },  { 'id': 2, 'name': 'Tabby' }]

现在,这些都是具有行为的 Cat 对象。但是,如果我定义了一个 Cat 对象,function Cat() { },我知道没有有效的方法可以将这些文字对象引入用户定义对象的行为。

我可以通过遍历它们并分配函数的蛮力来做到这一点,但它不会很漂亮。是否有一种很好的一行(或几行)方式以某种方式将此行为“转换”到这些文字对象上?

最佳答案

无法回避的事实是,您将不得不遍历所有简单对象并将它们更改为不同类型的对象。你无法避免循环。话虽这么说,您可以创建一个构造函数,它接受一个像这样的简单对象并将这些值复制到新实例中。

像这样:

function Cat(c) {
this.id = c.id;
this.name = c.name;
}
Cat.prototype.meow = function() {alert('meow');}
Cat.prototype.displayName= function() {alert(this.name);}

var cats = [
{ 'id': 0, 'name': 'Persian' },
{ 'id': 1, 'name': 'Calico' },
{ 'id': 2, 'name': 'Tabby' }
];

for (i=0,len=cats.length; i<len; i++) {
cats[i] = new Cat(cats[i]);
}

cats[0].meow(); // displays "meow"
cats[0].displayName(); // display "Persian"

关于javascript - 如何在javascript中将文字对象转换为用户定义的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/315893/

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