javascript中的引用函数和调用函数的区别是什么?下面本篇文章给大家介绍一下JavaScript中的引用函数、调用函数的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

1cac75b89cdab88a1f9b91d662b8b15f.png

引用函数与调用函数的区别

引用函数与调用函数的差别与函数名称后是否附有括号()有关。函数引用只会单独出现,但函数调用则必定后随括号,很多时候还附有自变量。

举个例子// 函数引用 代码一

function f(){

var x = 5;

return x;

}

var a = f;

var b = f;

console.log(a===b); // true

// 函数调用 代码二

function f2() {

var x = 5;

return x;

}

var a2 = f2();

var b2 = f2();

console.log(a2 === b2);

// 函数调用 代码三

function f3(){

var x = 5;

return function(){

return x;

}

}

var a3 = f3();

var b3 = f3();

console.log(a3 === b3); // false

如上的代码:代码一和代码二分部是函数引用和函数调用的列子,返回都为true,代码三也是函数调用的列子,返回且为false

我们现在来理解下函数引用和函数调用的本质区别:当引用函数时候,多个变量内存存储的是函数的相同的入口指针,因此对于同一个函数来讲,无论多少个变量引用,他们都是相等的,因为对于引用类型(对象,数组,函数等)都是比较的是内存地址,如果他们内存地址一样的话,说明是相同的;但是对于函数调用来讲,比如代码三;每次调用的时候,都被分配一个新的内存地址,所以他们的内存地址不相同,因此他们会返回false,但是对于代码二来讲,我们看到他们没有返回函数,只是返回数值,他们比较的不是内存地址,而是比较值,所以他们的值相等,因此他们也返回true,我们也可以看看如下实列化一个对象的列子,他们也被分配到不同的内存地址,因此他们也是返回false的;

如下代码测试:function F(){

this.x = 5;

}

var a = new F();

var b = new F();

console.log(a === b); // false

函数与一般变量的差异,在于如何使用数据。与函数相关的数据(或代码)可被执行。想执行函数时,就在函数名称后加上括号(),如果函数需要自变量,也要记得附加上。

函数变量的值不是代码本身,而是指向存储代码的存储器位置的引用。

回调函数。 简单理解就是:函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。

Title

function a(callback)

{

alert("我是parent函数a!");

alert("调用回调函数");

callback();

}

function b(){

alert("我是回调函数b");

}

function c(){

alert("我是回调函数c");

}

function test()

{

a(b);

a(c);

}

学习js回调函数

click me

应该能看到调用了两个回调函数

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐