JavaScript高级
每个JavaScript函数实际上都是一个Function对象
- 创建函数的3种方式
function 函数的名称(){}
- 函数表达式
var 函数名 = function(){}var fn = function (){}通过fn()获取
- 构造函数的创建
var 函数名 = new Function(\'a\',\'alert(a)\') 第一个指的是参数,第二个指的是函数体
- 函数的声明与函数的表达式区别
– 函数声明可以在任意可见位置调用(即在函数定义的前后即可)
– 函数表达式:必须先定义以后在进行调用
– 函数声明可以预加载(预解析),也就是函数声明有函数提升的作用
- 变量作用域
- 全局:在任意位置都可以访问的范围(函数外部,函数内部可以)
- 全局变量会自动追加到window下
- 相关实例演示
function Foo(){getName = function(){alert(1)}return this;}Foo.getName=function(){alert(2)}Foo.prototype.getName=function(){alert(3)}var getName = function(){alert(4)}function getName(){alert(5)}Foo.getName() //2 (函数本身也是对象)getName() //4 (函数的调用区别,函数的预解析)Foo().getName() //1 (作用于和this指向)getName() // 1new Foo.getName() //2new Foo().getName() //3 (原型链的概念)new new Foo().getName()