js补充:jquery对象转dom,this,闭包

juqery对象转成dom对象:

<form id="form">
</form>
js代码:
#jquery
$("#form")[0].reset() 等于 document.getElementById("form").reset()
#重置表单

this:

var name = "全栈28期"
function func(){
var name = "全栈25期"
console.log(name) // 全栈25
}
func();
var name = "全栈28期"
function func(){
var name = "全栈25期"
console.log(this.name) // 全栈28期
}
window.func();
var name = "王洋"
info = {
name:"陈硕",
func:function(){
console.log(this.name) // 陈硕
}
}
info.func()
var name = "王洋"
info = {
name:"陈硕",
func:function(){
console.log(this.name) // info.name > 陈硕
function test(){
console.log(this.name); // window.name > 王洋
}
test()
}
}
info.func()
var name = "王洋"
info = {
name:"陈硕",
func:function(){
var that = this;
function test(){
console.log(that.name); // info.name -> 陈硕
}
test()
}
}
info.func()

总结:每个函数都是一个作用域,在他的内部都会存在this,谁调用的函数,函数里面this就是谁。

闭包:

data_list = [11,22,33]
for(var i=0;i++;i<data.length){
console.log(i,data[i] )
}
data_list = [11,22,33]
for(var i=0;i++;i<data.length){
// 循环会发送三次ajax请求,由于ajax是异步请求,所以在发送请求时候不会等待。
$.ajax({
url:"....",
data:{value:data_list[i]},
success:function(res){
// 1分钟之后执行回调函数
}
})
}
console.log("全栈28期")#立即执行,然后去执行ajax中的回调函数
data_list = [11,22,33]
for(var i=0;i++;i<data.length){
// 循环会发送三次ajax请求,由于ajax是异步请求,所以在发送请求时候不会等待。
$.ajax({
url:"....",
data:{value:data_list[i]},
success:function(res){
// 1分钟之后执行回调函数
console.log(i); // 输出:2 2 2
}
})
}
console.log(i) // 输出:2,取最后的一次值i是2
data_list = [11, 22, 33];
for (var i = 0; i++; i < data.length) {
function xx(data) {
$.ajax({
url: "....",
data: {value: data_list[data]},
success: function (res) {
// 1分钟之后执行回调函数
console.log(data); // 输出:0/1/2
}
})
}
xx(i)
}
console.log(i) // 输出:2
data_list = [11, 22, 33];
for (var i = 0; i++; i < data.length) {
(function(data){
$.ajax({
url: "....",
data: {value: data_list[data]},
success: function (res) {
// 1分钟之后执行回调函数
console.log(data); // 输出:0/1/2,这样这里是用的原来的data的值
}
})
})(i)
}
console.log(i) // 输出:2

注意事项:如果你以后循环,循环内容发送异步请求,异步任务成功之后; 通过闭包来解决。

$.each(files,function()){} //这种默认是带着闭包的
posted @   hanfe1  阅读(121)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示