JS 函数调用

Js函数调用的方式有如下几种情况:


 1 (1)具名函数直接调用
2 function foo()
3 {
4 }
5 foo();
6
7 (2)匿名函数通过引用来调用
8 fooRef = function()
9 {
10
11 }
12 fooRef();
13
14 (3)没有引用的匿名函数调用1
15 (function()
16 {
17
18 }());
19
20 (4)没有引用的匿名函数调用2
21 (function()
22 {
23
24 })();
25
26 (5)没有引用的匿名函数调用3
27 void function()
28 {
29
30 }();

图 1.1          
                     
                     
                     
             图 1.2

图1.1,图1.2表明了这两种表达式的运算过程是不一样的,图1.1中是用强制运算符使函数调用运算得以执行,图1.2中则用强制运算符运算"函数直接量声明"这个表达式,并返回一个函数自身的引用,然后通过函数调用运算"()"来操作这个函数引用。而上面的最后一个匿名函数调用void
function(){}();则用于调用函数并忽略返回值,运算符void用于使其后面的函数表达式执行运算。如果我们不使用"void"与强制运算"()",代码能否执行:

(1)function(){}()  //使用‘‘()"强制调用

(2)function(){}();  //使用";"来执行语句

脚本引擎会认为function(){}是函数声明,从而通不过语法检测,代码被解析成这样:

function(){};();

function(){}被作为声明被解释,而"();"被独立成一行来解释,因而会报语法错误,为什么知道是"();"导致的错误?我们改成如下代码:

function(){}(1);

这样就会被引擎解释为:

fucntion(){};

(1);  //单值表达式

因而通过了语法检测...

时间: 2024-12-07 23:24:13

JS 函数调用的相关文章

JS函数调用的方法

JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject 对象.var blogInfo={ blogId:123, blogName:"werwr", showBlog:function(){alert(this.blogId);}}; blogInfo.showBlog(); 2.函数调用模式定义

09 js函数调用过程内存分析、js函数细节

函数的调用过程 Js函数调用过程的内存分析. 一个递归调用的例子: <html> <head> <script> //abc是一个函数它接收一个数值 function abc(num1){ if (num1>3) { abc(--num1); //递归 } document.writeln(num1); } abc(5); </script> </head> <body> </body> </html>

js函数调用二种常用方法的例子

js中函数调用的两种常用方法. 一个js函数 function test(aa){ window.alert("你输入的是"+aa); } 方法一:直接调用 test("dddd");方法二:函数赋值给变量var abc=test;abc('中国');//用变量来调用函数注意:当写成这种形式的时候,var abc=test("dddd"); 不能通过变量abc来调用函数.这种写法当test有返回值的时候会把返回值赋值给abc,当没有返回值的时候a

JS函数调用的四种方法

js的函数调用会免费奉送两个而外的参数就是 this 和 arguments .arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度. 书上有说4中调用方式: 方法调用模式 函数调用模式 构造器调用模式 apply调用模式 下面我们来看看一些实例更好理解. 1:方法调用模式. 请注意this此时指向myobject. /*方法调用模式*/    var myobject={            value:0,            inc:functio

js函数调用的方法:

js的函数调用会免费奉送两个而外的参数就是 this 和 arguments .arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度. 书上有说4中调用方式: 方法调用模式 函数调用模式 构造器调用模式 apply调用模式 下面我们来看看一些实例更好理解. 1:方法调用模式. 请注意this此时指向myobject. /*方法调用模式*/    var myobject={            value:0,            inc:functio

js函数调用模式

1.函数调用 调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数.除了函数声明时定义的形参,每个函数还接受两个附加的参数:this和arguments(arguments并不是一个真正的数组,它拥有length属性,但它缺少数组的所有方法).参数this在面向对象编程中非常重要,它的值取决于调用的模式.在js中一共有四种调用模式:方法调用模式.函数调用模式.构造器调用模式和apply调用模式.这些模式在如何初始化关键参数this上存在差异.arguments的个数取决于函数定义时候形参的

JS函数调用方式

1.作为函数调用 function myFunction(a, b) { return a * b; } myFunction(10, 2); 这是JS中函数调用的常见方法,但不是良好编程习惯.全局变量,方法或函数容易造成命名冲突的bug. 函数作为全局对象调用,会使 this 的值成为全局对象.使用 window 对象作为一个变量容易造成程序崩溃. 2.作为对象的方法调用 var myObject = { firstName:"John", lastName: "Doe&q

08 js系统函数、js函数调用方式

在js 中函数分为:用户自定义函数.系统函数(查阅文档) 常用函数的介绍eval <html> <head> </head> <body> <script language="javascript"> var str="window.alert('OK')"; //需求是把str当做一个脚本来执行 eval(str);//计算 JavaScript 字符串,并把它作为脚本代码来执行. </script

行内js函数调用

<ul> <li onclick=abc(this);><a href="javascript:void(0);">12234588</a></li> <li onclick=abc(this);><a href="javascript:void(0);">12234588</a></li> <li onclick=abc(this);><a