JS 函数声明的不同写法

  1. myfun:function(){} 是必须写在对象内部的,是一个对象的方法,如:
var obj = {
   myfun:function(){} 
}

写在外面会报错。

  1. var myfun = function(){} 意思是把一个匿名的函数表达式复制给了变量myfun,和 function myfun(){} 声明的方法差别不大,但还是有差别的。
    JS在解析的过程中,会把函数和变量提前解析。function myfun(){} 这种声明方法会把函数整个语句显式地提前到脚本或者函数前(当前作用域)。而var myfun = function(){}这种声明方法,只是提前了一个变量,并没有提前函数体。
    看例子:
var fun1 = function(){
    console.log("先声明后使用,没有错");
}
fun1();    // 先声明后使用,没有错

fun2();    // 先使用后声明,也没错
function fun2(){    
    console.log("先使用后声明,也没错");
}

fun3();    // Uncaught TypeError: fun is not a function
var fun3 = function(){
    console.log("fun3的声明被提升了,但初始化没有被提升");
}
  1. var myFunction = new Function(参数1,参数2,…,参数n,函数体)
    通过实例化一个Function原型,得到一个数据类型为function的对象,也就是一个函数,而该变量就是函数名,如:
var myFunction = new Function('users', 'salary', 'return users * salary');

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 6,533评论 2 17
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 541评论 0 6
  • 1,javascript 基础知识 Array对象 Array对象属性 Arrray对象方法 Date对象 Dat...
    圆圆和方方阅读 380评论 0 1
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 2,797评论 0 7
  • 最近一段时间儿子对我们态度很不好,让帮忙做什么也是不情不愿的。今天我和爱人去新房子装灶具灯具,觉得中午不回家刚好给...
    阳光的样子阅读 72评论 1 3