函数深入理解---函数的值传递

函数的值传递

//由于函数是对象,所以可以直接把函数参数传递进来

function callFun(fun,arg){
    //第一个参数就是函数对象
    return fun(arg);
}

function sum(num){
    return num +100;
}

function say(str){
    console.log(‘hi‘ + str);
}
//var say = x;
//调用了say函数
callFun(say,‘leo‘);
//调用了sum函数
console.log(callFun(sum,20));
时间: 2024-10-28 10:57:29

函数深入理解---函数的值传递的相关文章

如何理解Java的值传递

结论 为了加深印象,先把结论放在文章开头. ++Java中只有值传递++. 形参与实参 在理解Java的值传递 实参Argument 实际参数,主调用函数传递给调用函数的参数 形参Parameter 形式参数,并非实际存在的变量,只在函数定义的函数内部使用.在调用函数时,实参将会给形参赋值,从而实现主调函数向调用函数传输数据的目的. 所谓的传递,就是实参给形参赋值的过程.这是我们理解值传递和引用传递的基础. 基本类型与引用类型 基本类型的变量保存值,即值就是变量自身. 而引用类型的变量的值表示对

Javascript 之《函数传参到底是值传递还是引用传递》

前言 这个问题其实困惑了我好久,但是在实际使用中总是得过且过,不想去深究.由于这种态度,在学习 Javascript 过程中,水平一直都是出于半桶水状态,很多概念和原理似懂非懂,模糊不清. 所以,写了一系列的<Javascript 之 ...>就是为了端正态度,认真地研究一下 Javascript 的特性和原理,夯实基础. 今天,这一篇探究的是函数传参的问题:函数传参到底是传值还是传的引用? 1.如果是引用传递 var name = 'JS'; function changeName(name

堆栈详解 + 彻底理解Java的值传递和引用传递

本文旨在用最通俗的语言讲述最枯燥的基本知识 学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java只有值传递,有的博客说两者皆有:这让人有点摸不着头脑,下面我们就这个话题做一些探讨,对书籍.对论坛博客的说法,做一次考证,以得出信得过的答案. 其实,对于值传递和引用传递的语法和运用,百度一下,就能出来可观的解释和例子数目,或许你看一下例子好像就懂,但是当

C语言中函数参数传递的本质是值传递

数组名做函数参数进行传递时,实际上是是一份该指针的拷贝. 给形参赋予其他值,并不影响实参的值. 类似于: int *p = a;    //a为数组名 p = b;          //b为数组名 当然,如果你传递了一个指向某个变量的指针,而函数对该指针执行了间接访问操作,那么函数就可以改变那个变量,但参数还是传值方式传递的,这是两个概念,不矛盾. 对于字符串复制函数strcpy: void strcpy(char *buffer, char const *string) { while((*

函数深入理解---函数的内部属性arguments和this

arguments function say(num){ /* 在函数对象中有一个属性叫做arguments,通过这个属性可以获取相应的参数值,这个属性 是一个数组,其实就是传递进来的参数 */ console.log(arguments.length); for(var i=0;i<arguments.length;i++){ console.log(arguments[i]); } console.log(num); } /* 在arguments这个对象中有一个callee的方法,argu

函数深入理解---函数的属性length和方法call 和apply

函数同样有两个非常好用的属性:length 和prototype function fn1(){ } function fn2(num1,num2){ } function fn3(num1){ } //函数的length就表示该函数所期望的参数值 alert(fn1.length) // 0 alert(fn2.length) // 2 alert(fn3.length) // 1 call 和apply方法查可以通过函数名称来调用函数 对于apply而言 有两个参数,第一个是调用的上下文,第

函数深入理解---函数的定义方式

函数的定义方式 //第一种定义方式 function fn1(){ alert('fn1'); } /*函数就是一个非常特殊的对象,是一个Function类的实例, 其实在内存中存储的操作是通过一个键值对来存储的 */ console.log(typeof fn1); //由于函数是一个对象,所以可以通过如下方式定义 //以下是通过函数的拷贝来完成赋值,两个引用并没有指向同一个对象 var fn2 = fn1; //两个的值虽然相等,但是指向的是不同的空间 fn2(); fn1 = functi

php函数间的参数传递(值传递/引用传递)

php:函数间的参数传递 1.值传递 代码如下: <?php function exam($var1){ $var1++: echo "In Exam:" . $var1 . "<br />"; } $var1 = 1; echo $var1 . "<br />"; exam($var1); echo $var1 . "<br />"; ?> ------------------

Makefile函数eval理解

Makefile函数eval理解 函数"eval"是一个比较特殊的函数.使用它我们可以在我们的Makefile中构造一个可变的规则结构关系(依赖关系链),其中可以使用其它变量和函数.函数"eval"对它的参数进行展开,展开的结果作为Makefile的一部分,make可以对展开内容进行语法解析.展开的结果可以包含一个新变量.目标.隐含规则或者是明确规则等.也就是说此函数的功能主要是:根据其参数的关系.结构,对它们进行替换展开. 函数"eval"的返