gpt4 book ai didi

javascript - 从 jQuery AJAX 请求返回的数据创建自定义 JavaScript 对象

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

我想创建一个自定义 javascript 对象,其中包含从 jQuery AJAX 请求返回的数据,但我不知道哪种方法是正确的。我在想也许一种方法是将 AJAX 请求包含在构造函数中,以便像这样创建对象:

// Constructor function
function CustomObject(dataUrl) {
var that = this;

$.ajax(dataUrl, {
success: function (json) {
that.data = $.parseJSON(json);
}
});
}

// Creating new custom object
var myObject = new CustomObject('http://.....');

另一种方法可能是使用执行 AJAX 的函数,然后根据来自 AJAX 响应的数据返回新对象。

function customObject(dataUrl) {
// Constructor function
function CustomObject(data) {
this.data = data;
}

$.ajax(dataUrl, {
success: function (json) {
var data = $.parseJSON(json);
return new CustomObject(data);
}
});
}

// Creating new custom object
var myObject = customObject('http://.....')

我想知道做这样的事情时最好的做法是什么,以及不同方法的优缺点。也许您可以指出一些与我正在尝试做的事情类似的文章或示例。

提前致谢。

最佳答案

我认为这是一个更好的方法,它使您的 CustomObject 只知道它包含的数据。在这里,您将创建对象的工作委托(delegate)给工厂,并传入回调以获取对创建对象的引用,因为 ajax 是异步的。如果您不介意使其同步,则 createCustomObject 函数可以只返回实例,并且可以删除回调。

function CustomObject(data) {
this.data = data;
}

var factory = (function(){
function create(dataUrl, objectClass, callback){
$.ajax({
url: dataUrl,
success: function (data) {
callback(new objectClass(data));
}
});
}
return{
createCustomObject: function(dataUrl, callback){
create(dataUrl, CustomObject, callback);
}
};
})();

// Creating new custom object
var myObject = null;
factory.createCustomObject('http://..', function(customObject){
myObject = customObject;
});

关于javascript - 从 jQuery AJAX 请求返回的数据创建自定义 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9271573/

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