JavaScript的函数的调用以及作为值的函数

一、函数的调用

  1、通过其他的元素事件进行触发

<script type="text/javascript">
    function box() { //没有参数的函数
        alert(‘只有函数被调用,我才会被之执行‘);
    }
</script>
<body>
    <input  type="button" value="点我" onclick="box()"/>
</body>

  2、将函数赋值给一个变量

   function sum(num) {
        return num + 10;
    }
    var box = sum;
    alert(box(2));
  function getSum(){
        return 100;
    }
    //var sum = getSum();//表示将getSum函数的返回值赋给sum变量

    var sum = getSum;
    //getSum本身是一个函数名,而函数本身在js中就是一个对象,getSum就是这个函数对象的引用,
    //将getSum这个引用的地址赋给了sum,这时sum也指向了这个函数对象,相当于这个函数有两个函数名

    alert("sum:"+sum);//打印结果是这个函数的定义格式,也就是将函数本体打印出来了
    alert("sum:"+sum());//打印结果是这个函数的返回

二、作为值得函数

   1、ECMAScript 中的函数名本身就是变量,所以函数也可以作为值来使用

   2、就是说,不仅可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。

function box(sum, num) {
    return sum+num;
}
function sum(num) {
    return num + 10;
}
var result = box(sum(10), 10);//将第二个函数的返回值传递给第一个函数的第一个参数
alert(result);
  function box(sum,num) {
        return sum(num);
    }
    function sum(num){
        return num + 10;
    }
    var result = box(sum,10); //传递函数到另一个函数里   实际上执行的还是sum这个方法
    alert(result);
时间: 2024-10-26 19:49:15

JavaScript的函数的调用以及作为值的函数的相关文章

Entity Framework 6 Recipes 2nd Edition(11-4)译 -&gt; 在”模型定义”函数里调用另一个”模型定义”函数

11-4.在”模型定义”函数里调用另一个”模型定义”函数 问题 想要用一个”模型定义”函数去实现另一个”模型定义”函数 解决方案 假设我们已有一个公司合伙人关系连同它们的结构模型,如Figure 11-4所示: Figure 11-4. A model representing the associate types in a company together with the reporting association 在我们的虚拟的公司里, , team members被一个team lea

C#中的函数(-) 无参无返回值的函数

分析下C#中的函数 先写一个小例子,一个静态函数,无返回值,无形参 在第17行与20行分别下断点 F5调试运行,此时中断在第17行MyFunction(), 在第17行右键反汇编,看下反汇编代码 这里的Call 002D0C30  对应用就是MyFunction() 此时F11直接进入MyFunction函数内部查看我们函数 002D2CA0就是MyFunction的入口,这里就有疑问了,明明上面Call 002D0C30,这里为什么是002D2CA0呢? 在地址栏上转到002D0C30,结果V

十九、函数指针高级(返回值是函数指针)

1.int (*functionName(int a))(int , int); 可改为: typedef int(*PFUN)(int , int); PFUN functionName(int a ); 2.示例: typedef int(*PFUN)(int , int); //相当于把int (*)(int , int)改成PFUN int maxValue(int x , int y); int maxValue(int x , int y){//最大值函数 return x>y?x:

【javaScript基础】立即调用函数表达式

在javaScript中,每个函数被调用时,都会创建一个新的执行上下文.因为在一个函数里面定义的变量和函数只能在里面访问,在外面是不行的,上下文提供了一种很容易的方法来创建私有性. //makeCounter函数返回另外一个匿名函数,这个匿名函数能够访问到"私有"变量i, 好像有一点"特权"性. function makeCounter() { // i只能在makeCounter的里面被访问到 var i = 0; return function() { cons

【javaScript基础】马上调用函数表达式

在javaScript中,每一个函数被调用时,都会创建一个新的运行上下文.由于在一个函数里面定义的变量和函数仅仅能在里面訪问.在外面是不行的.上下文提供了一种非常easy的方法来创建私有性. //makeCounter函数返回另外一个匿名函数,这个匿名函数可以訪问到"私有"变量i, 好像有一点"特权"性. function makeCounter() { // i仅仅能在makeCounter的里面被訪问到 var i = 0; return function()

JavaScript函数的调用模式

我们说一个函数的调用模式是作为一个函数来调用,是要与其它三种调用模式做区分函数其他的三种调用: 方法调用模式,构造器调用模式,apply/call调用模式. 方法的调用模式: var obj={ fun1: function(){ //方法内容 this; //指的是window } } obj.fun1() //方法的调用 构造器的调用: function Person(name, age, job){ this.name = name; this.age = age; this.job =

JS中函数的本质,定义、调用,以及函数的参数和返回值

要用面向对象的方式去编程,而不要用面向过程的方式去编程 对象是各种类型的数据的集合,可以是数字.字符串.数组.函数.对象…… 对象中的内容以键值对方式进行存储 对象要赋值给一个变量 var cat={ "name":"喵1", "age":4, "family":["喵爸","喵妈"], "speak":function(){ console.log("喵喵

JavaScript词法作用域与调用对象

关于 Javascript 的函数作用域.调用对象和闭包之间的关系很微妙,关于它们的文章已经有很多,但不知道为什么很多新手都难以理解.我就尝试用比较通俗的语言来表达我自己的理解吧. 作用域 Scope Javascript 中的函数属于词法作用域,也就是说函数在它被定义时的作用域中运行而不是在被执行时的作用域内运行.这是犀牛书上的说法.但"定义时"和"执行(被调用)时"这两个东西有些人搞不清楚.简单来说,一个函数A在"定义时"就是 functio

shell编程值之函数和select的使用

select   select循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3提示符,等待用户的输入,用户输入菜单列表中的某个数字,执行相应的命令,用户输入被保存在变量REPLY中. select是个无限循环,因此要记住用break命令退出循环,或者用exit直接退出脚本,也可以使用ctrl+c退出循环 select语句结构: select 变量 in 选项1 选项2 ;do break done #!/bin/sh PS3="what is you favourit