函数声明和函数表达式

2019-01-04  本文已影响10人  楠楠_c811

函数声明和函数表达式的区别:
函数声明如果先执行后定义,不会报错,照常运行。但是表达式如果先执行再定义,就会报错,因为变量提升,打印出来会是undefined。

// 函数声明
function fn () {

}
// 函数表达式
var fn = function () {
}


this要在执行时才能确认,定义时无法确认。

 var a = {
            name:'A',
            fn: function () {
                console.log(this.name)
            }
        }
        a.fn()  // this === a 
        a.fn.call({name:'B'})   //this === {name:}
        var fn1 = a.fn
        fn1()  // this === window

上一篇 下一篇

猜你喜欢

热点阅读