gpt4 book ai didi

javascript:转换一个用 eval 创建的对象

转载 作者:数据小太阳 更新时间:2023-10-29 04:15:12 24 4
gpt4 key购买 nike

我有一组在整个应用程序中使用的 javascript 类。在一种情况下,我想从形状匹配我的一个类的 ajax 响应中评估一些 json。

我正在使用 jquery parseJSON 方法为我进行评估。

唯一的问题是我现在想调用我的类中定义的方法,但我知道该方法不会存在于已评估的对象上。

让这个方法在我的新对象上可用的最好方法是什么。有没有办法“转换”它?

最佳答案

JavaScript 中没有转换的概念。相反,您可以修改类的构造函数以接受普通对象。你如何做到这一点取决于你如何设置你的类,但可以简单地将对象的浅拷贝包含到类的新实例中:

var MyClass = function (obj) {
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
this[i] = obj[i];
}
// Other class initialisation code
};

然后像这样“转换”你的对象:

var result = new MyClass(someObject);

如果您有多个需要此功能的类,您可能更愿意创建一个extend 函数来为您进行克隆(或者如果您使用的是 jQuery,则此函数已经存在):

var extend = function (obj1, obj2) {
for (var i in obj2) {
if (!obj2.hasOwnProperty(i)) continue;
obj1[i] = obj2[i];
}
};

然后像这样“转换”:

var result = new MyClass();
extend(result, someObject);

关于javascript:转换一个用 eval 创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098346/

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