JS定义函数

定义函数有三种方式:1,function fun()这种叫函数申明;2,var fun=function()这种叫函数表达式;3,var fun=new Function()也叫函数表达式。
在同一个执行环境中,函数申明不管是在什么位置,都会被提升至代码的最前面,即便前面是函数表达式,这个是js的规则。

例题:

function fun (){
                        alert(0);
                       }
fun();

var fun = function (){
                                 alert(1);
                                }
fun();

var fun =function (){
                                 alert(2);
                               }
fun();

function fun (){
                        alert(3);
                       }
fun();

答案:3122

最先执行的肯定是第一个fun(),它指向最后的那个function fun ()。然后又执行第二个fun(),它指向第一个var fun = function ()。然后执行第三个fun(),第二个var fun = function ()覆盖第一个,因为js没有重载的方法,所以就是这么个运行流程。

等同于代码变成了这样:

function fun (){
                        alert(0);
                       }

function fun (){
                        alert(3);
                       }
fun();

var fun = function (){
                                 alert(1);
                                }
fun();

var fun =function (){
                                 alert(2);
                               }
fun();

fun();
时间: 2024-08-28 20:32:01

JS定义函数的相关文章

JS定义函数的两种方式:函数声明和函数表达式

函数声明 关于函数声明的方式,它的一个重要的特性就是函数声明提升(function declaration hoisting),意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它的语句后面,如下所示: 1 sayHi(); //在调用语句的后面声明函数(function declaration hoisting) 2 function sayHi () { 3 console.log("Hello World"); 4 } 函数表达式 有多种表达方式,下面是最常见

js:深入函数的定义

函数定义方式: 1.function fun1(){alert("fun1");}  //函数就是一个非常特殊的对象,是一个Function的实例,其实在内存中存储的操作是通过一个键值对来存储的. 2.由于函数是一个对象,所以可以通过如下方式定义 var fun2 = fun1;  //通过函数拷贝给fun2完成赋值,但fun1.fun2这两个引用并没有指向同一个对象(虽然他们指向的对象的内容是一样的). fun1 = function(){alert("fun111&quo

js function定义函数使用心得

js function定义函数使用心得,了解这个才能更进一步的了解js面向对象方面的知识. 1.最基本的作为一个本本分分的函数声明使用. 代码如下: function func(){} 或 var func=function(){}; 2.作为一个类构造器使用: 代码如下: function class(){} class.prototype={}; var item=new class(); 3.作为闭包使用: 代码如下: (function(){ //独立作用域 })(); 4.可以作为选择

js类定义函数时用不用prototype的区别?

一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下:      function ListCommon2(first,second,third) {   this.First=function () {  alert("first do"+first); } }  ListCommon2.do1=function(first) {    //   this.First();  alert("first do"+first); } List

js两种定义函数、继承方式及区别

一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function() { alert("i am B"); } 区别:code 前者会在代码执行之前提前加载到作用域中,后者则是在代码执行到那一行的时候才会有定义 二:js两种继承方式及区别 对象冒充 临时属性 call() apply() 原型链 code 继承应选哪种 code 三:实例 js两种定义

js面向对象编程: js类定义函数时prototype和this区别?

在面向对象编写js脚本时,定义实例方法主要有两种 如下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototype.do2=function() { // alert("first do"+first);//会出错,不能访问first this.do1(); } this.do1=

JS中函数定义的三种格式

第一种:function  fun1(参数1,参数2...){            //通过创建函数名来定义函数 函数体: } 第二种:var fun2=new Function("参数1,参数2...","函数体");         //通过创建变量来定义函数 第三种:function(){                //匿名函数 函数体: } 说明: 1,在调用时,可以为没有参数的函数传递参数:但如果没有传递参数给有参数的函数时,会默认参数为undefi

js中定义函数的常用方式

1:函数声明 因为在js中有函数提升特性,所以函数声明可以写在作用域的任意地方. 2:函数表达式,又叫函数字面量 原文地址:http://blog.51cto.com/11871779/2119688

对JS中函数的理解

函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能) var fn=function(a){return a+100;} fn=function(a){return a+200;} alert(fn(100)); //300 要访问函数的引用(指针)而不是执行函数时,必须去掉圆括号,加上圆括号表示访问函数执行后的结果 函数体内部的语句在执行时,一旦