javascript函数怎么写


本文摘自PHP中文网,作者醉折花枝作酒筹,侵删。

javascript函数的写法有:1、常规写法,“function 函数名(){js代码}函数名()”;2、$(function(){})写法,“$(对象).ready(function() {js代码});”。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

Javascript和其他编程语言相比比较随意,所以Javascript代码中充满各种奇葩的写法,有时雾里看花,本文讲一下JavaScript函数的写法。

1

2

在Javascript中只有对象。 变量是对象,函数也是对象。 只要你知道你的对象是什么,按照它的方式去使用就可以了。

Javascript是弱类型,对象,实例,函数,方法通用的。不需要区别那么清楚。

1. 常规写法:

1

2

3

4

5

6

// 函数的定义

function foo() {

    alert('常规写法');

}

// 函数的调用

foo()

这种写法是大家最熟悉,最易于理解的写法和调用方法,接着往下看

2. 匿名函数写法

1

2

3

4

5

6

// 函数的定义

var foo = function(){

    alert('匿名函数定义');

}

// 函数的调用

foo()

这里把功能定义弄成了匿名,省去了命名的痛苦,同时赋给了一个变量,变量就成了功能的代名词,接着看

3. 将方法作为一个对象

1

2

3

4

5

6

7

8

// 定义

var test = {

    fun1: function(){  },

    fun2: function(){  }

}

// 调用

test.fun1();

test.fun2();

在Javascript中变量功能很强大,可以代表很多东西。

4. 构造函数中给对象添加方法

1

2

3

4

5

6

7

8

9

// 给对象添加方法

var fun = function(){ };  // 定义函数对象

fun.prototype.test = function(){

    alert('这是在在foo函数上的原始对象上添加test方法,构造函数中用到');

}

 

// 调用

var myfun = new fun(); // 创建对象

myfun.test(); // 调用对象属性

通过prototype关键字添加方法。

5. 自执行函数 ( function(){…} )() 和( function(){…} () )

前面讲的函数定义和调用时分开的,这里马上讲的定义和执行是一起进行的。

( function(){…} )() 和( function(){…} () ) 是 两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此。要理解立即执行函数,需要先理解一些函数的基本概念。

函数声明、函数表达式、匿名函数

函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。

函数表达式 var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。

匿名函数:function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。

函数声明和函数表达式不同之处在于

一、Javascript引擎在解析javascript代码时会‘函数声明提升’(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式,

二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用 。以下是两者差别的两个例子。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

// 方式1: ( function(){…} () )

(

     function(){alert('hello world, I am coming');}()

);

// 函数有参数的情况,有时为确保执行,前面加;

// 看到别人的插件,你会发现人家开头处加了一个";",这样就算页面js有错误,加载运行他的插件也能保证运行,如:

;(function(e){alert(e);}('hello world'));

 

// 方式2:( function(){…} )()

(function(){alert('hello');})();

 

// 有时在前面加运算符,常见的是!与void

!function(){alert('hello');}();

void function(){alert(2);}();

6 $(function(){})写法

$ (function(){/…/});是 $(document).ready(function(){/…/})的简写形式,是在DOM加载完成后执行的回调函数,并且只会执行一次。

1

2

3

$( document ).ready(function() {

   console.log( "ready!" );

});

与如下写法等价

1

2

3

$(function() {

   console.log( "ready!" );

});

在一个页面中不同的js中写的$(function(){/…/});函数,会根据js的排列顺序依次执行。

【推荐学习:javascript高级教程

以上就是javascript函数怎么写的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

什么是javascript引擎

javascript怎么注释多行

javascript专题之六:类型检测

javascript怎么获取请求参数

javaweb与javascript区别是什么

javascript诞生于哪年

javascript数组什么意思

javascript怎么设置背景颜色

bootstrap和react的区别是什么?

javascript如何阻止事件冒泡和事件本身发生

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...