程序员让前端飞Web 前端开发

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

2018-04-27  本文已影响19人  小7丁

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
b
end

如果是异步的话

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

则会输出的是

start
end
a

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);

这时候也是全局的情况

上一篇 下一篇

猜你喜欢

热点阅读