javascript - 如何在javascript中的另一个函数中使用函数作为对象的属性
问题描述
我正在尝试创建一个将对象作为参数的函数,并且在对象内部我想要一个对象方法,就像 jQuery ajax 的工作方式一样。我现在的问题是我无法让该对象方法工作。
function myAjax({
type,
url,
success
}) {
var suc = "";
typeof type === "undefined" ? type = "GET" : type = type;
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
suc = this.responseText;
//alert(this.responseText);
}
};
req.open(type, url, false);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded ");
req.send("fname=chijioke&lname=francis");
function success(suc) {}
}
myAjax({
type: "post",
url: "page.html",
success: function(e) {
alert(e);
}
});
我想做一些类似于这个 jQuery ajax 调用的事情
$.ajax({
type: "post",
url: "index",
data: {
id: id
},
success: function(feedback) {
alert(feedback);
}
});
我需要responseText
通过成功功能,但它不起作用。我希望它像 jQuery ajax 成功一样工作,这真的是为了学习目的。
解决方案
您正在尝试做的事情称为回调函数。与其在函数内部声明函数,不如调用传递给它的函数。
所以而不是
function success(suc) {}
尝试做
success(suc);
https://codeburst.io/javascript-what-the-heck-is-a-callback-aba4da2deced这是我找到的关于该主题的指南。
推荐阅读
- javascript - 如何将对象中的值组合到数组中
- sql - VBA 中的 SQL 语句无法识别我的 Excel 工作表
- .net - CK 编辑器(版本 5)粘贴屏幕截图不适用于反应 js
- javascript - 将带有 Google Charts 仪表板的 HTML 页面导出到 .docx 文件
- networking - 无需上传即可将文件发送到 VPS
- django - HttpResponse Django 之后继续执行
- android - 在 Android / NDK 中为 YUV 帧添加单色效果
- python - Python - 从两个列表的元素连接创建多个列表
- html - 如何在 Leaflet HTML 中将经度和纬度转换为(地址/物理)
- go - 我是否需要在生产服务器上安装所有 go 依赖包