js函数对象和回调
2020-11-01 本文已影响0人
小吉头
函数对象和实例对象
函数对象:将函数作为对象使用时,简称函数对象
实例对象:new函数产生的对象,简单对象
()的左边是函数
. 的左边是对象
<script>
function Fn(){ //Fn是函数
}
const fn = new Fn() //此时Fn是构造函数,fn是示例对象(简称为对象)
console.log(Fn.prototype) //Fn是函数对象
Fn.call({}) //Fn是函数对象
$('#test') //jQuery函数
$.get('/test') //jQuery函数对象
</script>
两种类型的回调函数
什么是回调函数
1、函数是自己定义的
2、自己不会主动调用该函数,但最终会执行
1、同步回调
回调函数不会放到队列
<script>
const arr = [1,2,3]
arr.forEach(item => {
console.log(item)
})
console.log('forEach()之后')
</script>
>>>1
>>>2
>>>3
>>>forEach()之后
2、异步回调
回调函数会放到队列,将来执行
<script>
setTimeout(() => {
console.log('callback')
},0)
console.log('setTimeout()之后')
</script>
>>>setTimeout()之后
>>>callback
怎么判断同步回调还是异步回调函数?
如上面示例,在启动了回调函数后面console.log(xxx)
启动回调函数->回调函数执行完成->console.log(xxx) 说明是同步回调
启动回调函数->console.log(xxx)->回调函数执行完成 说明是异步回调,先启动了回调函数,不会立刻执行,启动不代表立刻执行