const div = Div()
function Div() {
const url = "http://localhost:3000/"
function bulid() {
const res = getData()
res.done(function(x) {
console.log(url); <---这里是异步调用为什么还能获取到变量url
console.log(x)
}
}
function getData() {
let deferred = $.Deferred()
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function (res) {
deferred.resolve(res)
},
error: function (jqXHR) {
deferred.reject()
}
});
return deferred
}
return {
bulid: bulid
}
}
div.bulid()
如上代码,为什么bulid()方法中的done的函数体内,明明都是异步了,为什么还能使用变量url?(url在done中没有声明,也不是传递的参数,它保存在哪)
另外,关于ajax的【回调函数】,这种用法算吗?