共被编辑 4 次

版本 更新时间 贡献者 编辑原因 操作
#r4 2018-08-22 seafront36 补充内容 查看

js回调this问题

两个调用 第二次进行回调的时候 this 标记1和 this 标记2值不一样
这是为何?

 function a (val, callback) {
      callback.call(a,val,callback)
    }
    a(1,function b (val ,callback) {
        console.log(this, '标记1')
        console.log(val)
        console.log(callback)
        callback(2,function c(val, callback){
        console.log(this)
        console.log(val)
        console.log(callback)
        console.log('over')
      })
    })
    console.log('-----分割线-------')
    a(1,function b () {
        console.log(this, '标记2')
        console.log(arguments[0])
        console.log(arguments[1])
        arguments[1](2,function c(){
        console.log(this)
        console.log(arguments[0])
        console.log(arguments[1])
        console.log('over')
      })
    })

clipboard.png

#r3 2018-08-22 seafront36 补充内容 查看

js回调this问题

两个调用 第二次进行回调的时候 this 标记1和 this 标记2值不一样
这是为何?

 function a (val, callback) {
      callback.call(a,val,callback)
    }
    a(1,function b (val ,callback) {
        console.log(this, '标记1')
        console.log(val)
        console.log(callback)
        callback(2,function c(val, callback){
        console.log(this)
        console.log(val)
        console.log(callback)
        console.log('over')
      })
    })
    console.log('-----分割线-------')
    a(1,function b () {
        console.log(this, '标记2')
        console.log(arguments[0])
        console.log(arguments[1])
        arguments[1](2,function c(){
        console.log(this)
        console.log(arguments[0])
        console.log(arguments[1])
        console.log('over')
      })
    })

clipboard.png

#r2 2018-08-22 seafront36 补充内容 查看

js回调this问题

两个调用 第二次进行回调的时候 this 标记1和 this 标记2值不一样
这是为何?

 function a (val, callback) {
      callback.call(a,val,callback)
    }
    a(1,function b (val ,callback) {
        console.log(this, '标记1')
        console.log(val)
        console.log(callback)
        callback(2,function c(val, callback){
        console.log(this)
        console.log(val)
        console.log(callback)
        console.log('over')
      })
    })
    console.log('-----分割线-------')
    a(1,function b () {
        console.log(this, '标记2')
        console.log(arguments[0])
        console.log(arguments[1])
        arguments[1](2,function c(){
        console.log(this)
        console.log(arguments[0])
        console.log(arguments[1])
        console.log('over')
      })
    })
#r1 2018-08-22 seafront36 创建问题 查看

js回调this问题

第一个this 1和第二个this 2为什么会不一样

 function a (val, callback) {
      callback.call(a,val,callback)
    }
    a(1,function b (val ,callback) {
        console.log(this, 1)
        console.log(val)
        console.log(callback)
        callback(2,function c(val, callback){
        console.log(this)
        console.log(val)
        console.log(callback)
        console.log('over')
      })
    })
    console.log('-----分割线-------')
    a(1,function b () {
        console.log(this, 2)
        console.log(arguments[0])
        console.log(arguments[1])
        arguments[1](2,function c(){
        console.log(this)
        console.log(arguments[0])
        console.log(arguments[1])
        console.log('over')
      })
    })