美文网首页
第七章 函数表达式

第七章 函数表达式

作者: 张果果 | 来源:发表于2016-10-07 10:24 被阅读9次

1.定义函数的方式:

①函数声明(其重要特征是函数声明提升,可以把函数声明放在调用它的语句后面):

function functionName ( arg0, arg1, arg2 ){

// 函数体

}

②函数表达式:

var functionName = function ( arg0, arg1, arg2 ){

// 函数体

}

2.匿名函数:function关键字后面没有标识符


3.闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。闭包只能取得包含函数中任何变量的最后的一个值。过度使用闭包可能会导致内存占用过多


4.但某个函数被调用时,会创建一个执行环境及相应的作用域链;在另一个函数内部定义的函数会将外部函数的活动对象添加到它的作用域链中。作用域链本质上是一个指向变量对象的指针列表,它只引用但不实际包含变量对象。


5.一般来讲,当函数执行完毕后,局部活动对象就会被销毁,内存中仅保存全局作用域(全局执行环境的变量对象)


6.this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。匿名函数的执行环境具有全局性,因此其this对象指向window


7.如果闭包的作用域链中保存着一个HTML元素,那么就意味着该元素将无法被销毁


8.特权方法:有权访问私有变量和私有函数的公有方法称为特权方法。


9.创建特权方法的方式:

①在构造函数中定义特权方法

function MyObject (){

    // 私有变量和私有函数

    var privateVariable = 10 ;

    function privateFunction (){

        return false ;

    }

    // 特权方法

    this . publicMethod = function (){

        privateVarible++;

        return privateFunction () ;

    };

}

②在私有作用域中定义私有变量或函数

( function (){

    // 私有变量和私有函数

    var privateVariable = 10 ;

    function privateFunction (){

        return false;

    }

    // 构造函数

    MyObject = function(){};

    MyObject . prototype . publicMethod = function (){

        privateVariable ++;

        return privateFunction () ;

    };

}) () ;

③模块模式:为单例创建私有变量和特权方法

var singleton = function (){

var privateVariable = 10;

function privateFunction (){

return false;

}

return {

publicProperty : true ,

publicMethod : function (){

privateVariable ++;

r

}

}

}


10.单例:只有一个实例的对象。JavaScript是以对象字面量的方式来创建单例对象的


11.递归函数应该始终使用arguments.calee 来递归地调用自身,不要使用函数名——函数名可能会发生变化

相关文章

  • js - 函数表达式

    第七章 函数表达式 1. 创建函数两种方法 函数表达式特征 1,函数声明: 特征: 函数声明提升,意思执行代码前会...

  • 第七章 函数表达式

    第七章 函数表达式 问答 1. 函数声明的语法是? 2. 函数表达式(匿名函数)的语法是? 3. 以下递归语句是否...

  • javascript高级程序设计(第7章) -- 函数表达式

    第七章:函数表达式 本章内容: 函数表达式的特征 使用函数实现递归 使用闭包定义私有变量 定义函数的方式有两种,一...

  • 2020-01-09:第七章:函数表达式(闭包)

    第七章:函数表达式 函数表达式是js中一个非常强大但又让人困惑的特性,我们前面提到过,函数声明有两种方法:函数声明...

  • 第七章 Caché 函数大全 $CHAR 函数

    第七章 Caché 函数大全 $CHAR 函数 将表达式的整数值转换为相应的ASCII或Unicode字符。 大纲...

  • 《JavaScript高级程序设计》之笔记五

    第七章 函数表达式 1. 定义函数的两种方法 : 2. 递归 : 递归函数是在一个函数通过名字调用自身的情况下构成...

  • 07 | 读JavaScript 高程

    这是第七章函数表达式,这一章涉及函数预编译,闭包,作用域链内容。函数涉及内容繁多。 前情提要 02-1 | 读Ja...

  • 07-1 | 读JavaScript 高程

    这是第七章函数表达式,这一章涉及函数预编译,闭包,作用域链内容。函数涉及内容繁多。今天来看作用域链。 在 06-2...

  • 函数与作用域

    函数声明和函数表达式有什么区别 函数声明 函数表达式 区别 函数表达式结束后需要加;表示声明变量结束。 函数表达式...

  • 函数

    函数声明和函数表达式有什么区别 函数声明 函数表达式 函数声明和函数表达式的区别: 函数声明必须给定函数名称,函数...

网友评论

      本文标题:第七章 函数表达式

      本文链接:https://www.haomeiwen.com/subject/hrrdyttx.html