手记

形参实参,同步异步,this的判断

parameters(形参) vs arguments(实参)

functioon print(a) {
    console.log(a);
}print('hello','i')

a就是形参,就是一个占坑符号。
hello就是实参

如何判断同步和异步

console.log('start');
['a','b'].forEach(function(it){    console.log(it);
});console.log('end');

如果是同步的话,就会顺序输出

start
a
bend

如果是异步的话

console.log('start');
setTimeout(function(){    console.log('a');
});console.log('end');

则会输出的是

startenda

this怎么判断

  • 判断this值就看函数是怎么被调用的

  1. 第一种情况指向全局。

function print(){    console.log(this)
}
  1. 第二种情况当成一个对象的一个方法,这时候this指向的最近的那个对象

let obj = {    a: 'a',
    fn(){        console.log(this);
    }
}
obj.fn()
  1. 第三种情况

function executeCallback(cb){
    cb();//cb是全局调用,cb就是obj.fn}
executeCallback(obj.fn);

这时候也是全局的情况



作者:徐金俊
链接:https://www.jianshu.com/p/0de2871fbd2b


0人推荐
随时随地看视频
慕课网APP