zoukankan      html  css  js  c++  java
  • Javascript 两种 function 定义的区别

    大家都知道Javascript 有两个种定义Function的方法非常常用。例如 

    function a(){alert("a")} 
    var a = function(){alert("a")} 

    在javascript中任何函数都是Function的对象,一种我们叫做隐式创建,一种叫显示创建,

    啥叫显示创建,就是写出来有个关键字NEW,(可以不算很科学的先这样理解)例如

    var test=new Function(cs1,cs2….csN,function-body)

    注意里面的cs1,cs2..表示参数,而function-body表示函数体,利用函数对象变量名就可以调用该函数,可以这样调用test(cs1,cs2…),或者赋值给某个变量同样,可以用那个变量调用。

    var test=new Function("cs1","cs2","alert(cs1+cs2)");
    test(1,2);

    效果等同于我们的隐式创建

    function test(cs1,cs2)
    {
    alert(cs1+cs2);
    }
    test(1,2)
    // var test1=test;
    //test1(1,2);

    所以大家隐式对象的时候,一定要想着它是通过new 关键字创建的Function对象,

    alert(test.toString());

    就可以输出函数体的代码

    除此之外,通常情况下,我们还会使用无名函数来创建函数

    var test=function(cs1,cs2)
    {
    alert(cs1+cs2);
    }
    test(1,2);

    效果等同于我们的显示创建,那么既然是创建的函数变量是对象,我们就可以给变量添加新的属性和方法,而在我们的js中方法就是特别的属性,这点需要注意

    test.love="i love php";
    alert(test.love);
    test.php=function(msg)
    {
    alert(msg);
    }
    test.php("how to study php!");

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    day5 -常用模块
    day4装饰器-迭代器&&生成器
    h5 canvas 图片上传操作
    Tomcat上传文件报错:returned a response status of 403 Forbidden
    $.each遍历json对象
    Java求字符串中出现次数最多的字符
    线程池原理
    谈谈你对Hibernate的理解
    为什么要用 ORM? 和 JDBC 有何不一样?
    多线程有几种实现方法?同步有几种实现方法?(被问到)
  • 原文地址:https://www.cnblogs.com/yeminglong/p/3137730.html
Copyright © 2011-2022 走看看