Js函数的三种创建、四种调用
2017-03-13 20:37
344 查看
// 函数的三种创建方法 function one(){ // 函数声明,不属于任何对象,始终默认为全局对象 console.log("第一个函数") //默认有一个return this,返回函数中的内容 } one(); //必须调用;可以在函数声明前调用(预处理变异机制) var fn=function(){ //函数表达式 console.log("第二个函数") } fn(); //必须先声明再调用 var fun=new Function(console.log("第三个函数")); //构造函数 无需调用,会自调
// 函数的4种调用方式 function one(){ console.log("一个函数") } one(); //作为一个函数去调用 var person={ name:"tom", age:18, speak:function(){ console.log("English") } } person.speak(); //函数作为对象的方法的调用 function num(n1,n2){ this.number1=n1; this.number2=n2;// 构造函数中的this没有任何值 } var i=new num(3,5); console.log(i.number1) // 构造函数会创建一个新的对象,新的对象会继承构造函数的属性和方法 function myFunction(a,b){ return a+b; } myFunction.call(this,2,5); var myArry=[2,5]; myFunction.apply(this,myArry); //作为函数方法调用函数 call()和apply()是预定义的函数方法,apply传入的是一个数组,call传入的是参数
js的运行机制问题:(声明提升)
1、在js中js引擎会优先解析var变量和function定义!在预解析完成后从上到下逐步进行!
2、解析var变量时,会把值存储在“执行环境”中,而不会去赋值,值是存储作用!例如:
alert(a); var a = 2; 这时会输出undifiend,意思是没有被初始化没有被赋值!
这并不是没有被定义,错误了的意思!
3、在解析function时会把函数整体定义,这也就解释了为什么在function定义函数时为什么可以先调用后声明了!其实表面上看是先调用了,其实在内部机制中第一步实行的是把以function方式定义的函数先声明了(预处理)
相关文章推荐
- ASP.NET后台调用前台JS函数的三种常见方法
- JS中创建函数的三种方式及区别
- 让js中的函数只有一次有效调用的三种常用方法
- js之函数的四种调用方式
- JS函数四种调用模式
- ASP.NET后台调用前台JS函数的三种常见方法
- js高级——函数的四种调用模式
- JS 之函数定义 & 创建对象 三种方式
- 让js中的函数只有一次有效调用的三种常用方法
- js 四种函数调用模式
- JS中创建函数的三种方式及区别
- js三种创建函数的方式
- 让js中的函数只有一次有效调用的三种常用方法
- js 调用applet函数创建文件错误。
- JS有参函数的创建和调用
- JS中创建函数的三种方式及区别
- JS面向对象函数的四种调用模式
- 让js中的函数只有一次有效调用的三种常用方法
- MySQL存储过程和自定义函数、Navicat、创建存储过程和函数、调用存储过程和函数、三种方式、In和Out类型参数、
- JS 四种函数调用模式