JS高级学习:函数相关

函数的声明和函数表达式

函数声明如果放在if-else的语句中,在IE8的浏览器中会出现问题,
以后宁愿要函数表达式,都不要用函数声明

// 函数声明
            if (true) {
                function f1() {
                    console.log("if的方法");
                };
            } else {
                function f1() {
                    console.log("else的方法");
                };
            }
            f1();
            // 函数表达式
            var ff;
            if (true) {
                ff = function() {
                    console.log("函数表达式的if")
                }
            } else {
                ff = function() {
                    console.log("函数表达式的else")
                }
            }
            ff();

函数中this的指向

  • 函数中this的指向
  • 普通函数中this的指向:window
  • 对象.方法中this的指向:当前的实例对象
  • 定时器方法中this的指向:window
  • 构造函数中this的指向:实例对象
  • 原型对象方法中this的指向:实例对象

函数的不同调用方式


函数也是对象

  • 函数是对象,对象不一定是函数
  • 对象中有proto原型,是对象
  • 函数中有prototype原型,是对象
  • 如果一个东西里面有prototype,又有proto,说明是函数,也是对象

数组的函数调用


你可能感兴趣的:(JS高级学习:函数相关)