【JavaScript】Function类型

  JavaScript中,每个函数都是Function类的一个实例。

  也就是说每一个定义的函数名都是指向Function类型的一个实例。

  函数名中存放的是函数的指针(Function类型实例指针)。

  可以使用Function的构造函数实现,最后一个参数被视为函数体,如:

  var sum = new Function("num1","num2","return num1+num2");   //不推荐

  

1.没有重载

  因为函数名中存放的是指针,重新定义相同的函数名时,不管参数签名是否一致,都会覆盖掉之前所存的函数。

  不存在重载。

  但是函数的重载还是可以实现,JavaScript中,当函数传入的参数与函数签名数量不相同时,仍可以运行(在函数体中加入判断参数是否存在的语句,避免出错)。

  这样也可以实现函数的重载。

2.函数声明与函数表达式区别

  JavaScript在编译时会将函数的定义提前,即在调用之后才定义,也可以实现函数体的内容,如:

    alert(sum(10,10);        //输出20

    function sum(num1, num2){
      return num1 + num2;

    }

  

  而当使用函数的表达式时,编译到表达式时才会定义函数,因此如果像上例输出,会报错,如:

    alert(sum(10,10);        //unexpected identifier

    var sum = function(num1, num2){

      return num1 + num2;

    }

 

3.作为值的函数

  因为函数名中存放的是指针,因此函数可以作为一个参数传入另外一个函数内部,如:

    function callSomeFunction(someFunction, someArgument){

      return someFunction(someArgument);

    }

 

    function add10(num){

      return num + 10;

    }

 

    var result1 = callSomeFunction(add10, 10);

    alert(result1);        //20

 

    function getGreeting(name){
      return "Hello, " + name;

    }

 

    var result2 = callSomeFunction(getGreet, "Nicholas");

    alert(result2);

4.函数内部属性

  

时间: 2024-10-12 17:27:58

【JavaScript】Function类型的相关文章

JavaScript:Function类型

在JavaScript中,函数实际是对象.每个函数都是Function类型的实例,而且都与其他类型一样具有属性和方法.函数声明方式: // 第一种:使用函数声明语法定义 function sum (num1, num2) { return num1 + num2; } // 第二种:使用函数表达式定义函数 var sum = function(num1, num2) { return num1 + num2; }; // 第三种:构造函数 var sum = new Function("num1

浅析JavaScript之Function类型

JavaScript中的函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上只是指向函数对象的指针,保存函数在堆内存中的地址值. 1.定义函数的三种方式: 1.1.函数声明方式 1 function sum(num1, num2){ 2 return num1 + num2; 3 } 1.2.函数表达式 1 var sum = function(num1, num2){ 2 return num1 + num2; 3

JavaScript之Function类型

以下的学习笔记来自于一本在 JavaScript 领域非常有名的书籍< JavaScript 高级程序设计(第 3 版)>,和 孔浩老师的视频教程(孔老师也是参考这本书,丰富了这本书上的内容).我只是一个知识的搬运工,以期通过搬运知识来加深对知识的理解. 函数是 ECMAScript 中最最有意思的部分,最最重要的部分.最有意思的根源在于:函数是对象. 函数就是一个非常特殊的对象,是一个 Function 类型的实例,其实在内存中存储的操作是通过一个键值对来存储的. 函数的第 1 种定义方式,

JavaScript基础——引用类型(三)Function类型

在ECMAScript中函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定.函数通常是使用函数声明语法定义的,如: function sum(num1 , num2){ returnnum1 + num2; } 这与下面使用函数表达式定义函数的方式几乎相差无几: var sum = function(num1 , num2){ returnnum1 + num2; };

转载自chaos_JS 的JavaScript中的Function类型浅析

1. Function类型是js中引用类型之一,每个函数实际上都是Function类型的实例对象,具有自己的属性和方法.正因为函数式对象,所以函数名实际上也是一个指向函数对象的指针. 2. 常用的函数定义方式 1. 函数声明: function sum(a , b ){ return a+b; } 2. 表达式: var sum = function(){ return a+b; }; //注意分号 //两种方式的区别: //解释器会率先读取函数声明,并使其在执行之前可以访问,而使用表达式则必须

JavaScript中的Function类型浅析

1. Function类型是js中引用类型之一,每个函数实际上都是Function类型的实例对象,具有自己的属性和方法.正因为函数式对象,所以函数名实际上也是一个指向函数对象的指针. 2. 常用的函数定义方式 1. 函数声明: function sum(a , b ){ return a+b; } 2. 表达式: var sum = function(){ return a+b; }; //注意分号 //两种方式的区别: //解释器会率先读取函数声明,并使其在执行之前可以访问,而使用表达式则必须

JavaScript中的Function类型

函数实际上是对象,每个函数都是Function类型的实例,定义Function函数的方式如下: 1 //第一种:函数声明 2 function sum(num1,num2){ 3 return num1 + num2; 4 } 5 6 //第二种:函数表达式 7 var sum = function(num1,num2){ 8 return num1 + num2; 9 } 10 11 //第三种:Function构造函数 12 var sum = new Function("num1"

说说javascript变量类型和变量类型检测

javascript是一种弱类型语言,它的典型例子就是即变量在使用的时候可以给它赋值任何类型.那么先来看下javascript都有那些变量类型已经它们的使用方法吧. 先来看看javascript都有那些类型吧: string --- 字符串number --- 数值boolean --- 布尔值undefined --- 未申明的变量 或 申明并未赋值null --- 空object  --- 对象function  --- 函数 这里比较有争议的是 function 类型到底要不要归属到变量类

深入理解 JavaScript Function

1.Function Arguments JavaScript 函数的参数 类型可以是 复杂类型如  Object or Array 和简单类型 String Integer null undefined;当参数是 复杂类型的时候,将会把 复杂类型的 引用传出 函数体内,也就是传入函数内的不是 复杂类型的副本,而是其在内存中的指针.当参数是 简单类型的时候,就会直接传值进入函数体内.look the below demostrated: var obj={name:'joe'}; (functi