上一节,我们知道了函数作用域,今天,就来了解一下函数表达式吧!
大家是否还记得,一个函数变成表达式的方法,就是用括号将函数体包裹起来呢。
函数表达式
JS中,函数也是一种数据,语法上,函数可以用在任何需要数据的地方。
换句话来说,JS中函数的地位还是比较高的,函数算是一等公民。
函数是一个引用类型,将其赋值给一个变量时,变量中保存的是函数的地址。
函数字面量和函数表达式没有本质的区别,唯一的区别在于,函数表达式无法提升,而函数字面量是可以提升的。
函数表达式的调用
var a = function ( ){ console.log( ' aaaa ' ); } a();
函数可以赋值到任何数据中,对象,变量,数组都是可以的。
var obj = { a : function(){ console.log( 12345 );}, b : 123}这里,直接通过obj来调用a就可以;var c = obj.a;c(); //这里输出12345;
this关键字
1、在全局环境中,this关键字固定指向window;
2、在函数作用域中,this关键字取决于函数是如何调用的。
(1)直接调用,this关键字指向全局(window)
(2)通过一个对象调用的时候,格式为 “ 对象.属性() ”,这时,this关键字的指向为该对象。即为是谁调用this指向谁。
前些课节中,是有介绍this指向问题的。所以,今天就不做太多讲解。
希望对大家有所帮助。
祝愿大家的前端之路越走越长,越走越顺。