美文网首页
js函数调用方式

js函数调用方式

作者: 颂温暖 | 来源:发表于2019-05-27 16:51 被阅读0次

js调用方式有如下几种:

1.函数声明

javascript 代码

function a (){
  alert(123);
}

2.函数表达式

javascript 代码

var a =function(){
 alert('234');
}

关于上面本文一开始标记的函数字面量和构造函数,用在这里有点不恰当,自己也有点拿捏不准,故而去掉!!!!

就这两点来说: 在javascript函数体内(执行作用域)声明的变量,无论在函数体何处声明,它将都会被提升到函数的顶部,我们称这种现象为变量提升。 函数呢,它也有这种特性,即无论在函数体何处声明另一个函数,它将都会被提升到函数的顶部。只是采用函数表达式和函数声明所体现的函数提升的内容是有差别的:函数表达式和变量提升类似,只会提升函数的变量,不提升函数的定义;而函数声明提升时,不仅仅会提升函数的声明,函数的定义也会被提升

根据以上特性,你的代码在执行时,
function a (){
alert(123);
}
这段代码被提升到执行作用域的顶端,最开始被执行;

然后,在执行
var a =function(){

alert('234');
}
这段代码,导致该代码覆盖了前面的函数声明代码

可以把a()放到函数的最顶端测试;测试结果:

javascript 代码

a();//会弹出123
    var a=function(){
        alert(234);
    }
    a();//会弹出234
    function a(){
        alert(123);
    };

3.没有引用的匿名函数调用1

javascript 代码

function(){alert(333);}());

4.没有引用的匿名函数调用2

javascript 代码

(function(){alert(444);})();

5.没有引用的匿名函数调用3

javascript 代码

void function(){alert(555);}();
1.1---1.2

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

相关文章

  • UIWebView(OC)与JS(JavaScript)交互

    获取UIWebView的JSContext Native调用JS函数 多种方式: JS调用Native方法 放出d...

  • JS中this关键字详解

    1、JS中函数的几种调用方式 (1)普通函数调用(2)作为对象方法调用(3)作为构造函数调用(4)apply/ca...

  • JS函数调用方式

    1.函数调用 2.方法调用 3.构造函数 4.上下文调用: call, apply, bind

  • js函数调用方式

    js调用方式有如下几种: 1.函数声明 javascript 代码 2.函数表达式 javascript 代码 关...

  • 理解js中的this

    js中的this,取决于函数的调用方式。 在作为普通函数调用时(类似:fn()),this指向全局或者undefi...

  • JavaScript函数调用及this参数

    JS有4种方式调用函数 作为一个函数(function)——fn()直接被调用 作为一个方法(methods)——...

  • Js调用模式

    在js中,一共4中调用方式。需要注意的是,调用方式中,this的指向问题。 函数调用模式 this丢失,debug...

  • JS函数调用的方式

    一、作为一个函数调用 二、作为方法调用 三、使用构造函数调用 四、call(),apply()和bind()方法 ...

  • js中的this到底是谁

    js中函数的4中调用方式 1作为普通函数来调用,this的值指向window,准确的说this为null,但是被解...

  • JS--函数

    JS--函数 函数的定义 方式一 方式二 注意点:一,函数可以传入任意个数个参数,且不会影响函数的调用:例如对于上...

网友评论

      本文标题:js函数调用方式

      本文链接:https://www.haomeiwen.com/subject/umohtctx.html