第5章 Function 类型

Function 类型

函数实际上是对象,函数名实际上也是一个指向函数对象的指针

函数声明语法:

funtion sum(sum1,sum2){
    return num1+num2
}

函数表达式

var sum = function(sum1,sum2){
    return num1+num2
};

使用Function构造函数

var sum = new Function("num1","num2","return num1 + num2");

不推荐使用这种方法定义函数,因为这种方法会导致解析两次代码(第一次是解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能

没有重载(深入理解)

function addSome(num){
    return num + 100;
}
function addSome(num){
    return num + 200;
}
addSome(100) ==> 300
注意:var sum = function sum(){} -- 会在Safari中报错

没有重载即:声明同样函数名的情况下,后者会覆盖前者

函数声明与函数表达式:
浏览器解析器会率先读取函数声明,并使其在任何代码之前可访问,至于函数表达式,则必须等到解析器执行到它所在的代码行,才会被执行。

作为值的函数:

function callSomeFunction(someFunction, someArgument){
    return someFunction(someArgument)
}

function createComparisonFunction(propertyName){
    return function(object1, object2){
        var value1 = object1[propertyName];
        var value2 = object2[propertyName];

        if( value1 < value2 ){
            return -1;
        } else if( value1 > value2 ){
            return 1;
        } else {
            return 0;
        }
    }
}

函数内部属性
arguments:类数组对象,包含着传入函数中的所有参数
this:函数据以执行的环境对象

函数属性和方法
每个函数都包括两个属性:
length:函数希望接收的命名参数个数

prototype:
function sayName(num1,num2){
    return num1 + num2
}
alert( sayName.length ) ==>  2

每个函数都包含两个非继承而来的方法:apply()和call(),两个方法都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值

函数内部属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 本章内容 使用对象 创建并操作数组 理解基本的 JavaScript 类型 使用基本类型和基本包装类型 引用类型的...
    闷油瓶小张阅读 697评论 0 0
  • 日本导演枝裕和电影《无人知晓 》,平静克制地叙说着一个沉重哀伤的故事,压抑沉默,没有煽情的刻意渲染,没有撕心裂肺的...
    纸影阅读 607评论 1 3
  • 本文共1400字,阅读时间<5分钟 这里是每天搬砖五分钟系列教程,今天教你如何计算贷款利率,先来看看看两个实际场景...
    Toyhank阅读 13,343评论 0 8