函數的寫法:1、“function 函數名(){}”;2、“var 函數名= function(){}”;3、“(function(){…})()” ;4、「(function(){…}())」;5、「$(function(){})」。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
Javascript和其他程式語言相比比較隨意,所以Javascript程式碼中充滿各種奇葩的寫法,有時霧裡看花,本文講一下JavaScript函數的寫法。
在Javascript中只有物件。變數是對象,函數也是對象。只要你知道你的對像是什麼,用它的方式去使用就好了。
Javascript是弱型,對象,實例,函數,方法通用的。不需要差別那麼清楚。
1. 常規寫法:
#// 函数的定义 function foo() { alert('常规写法'); } // 函数的调用 foo()
這種寫法是大家最熟悉,最容易理解的寫法和呼叫方法,接著往下看
2. 匿名函數寫法
// 函数的定义 var foo = function(){ alert('匿名函数定义'); } // 函数的调用 foo()
這裡把功能定義弄成了匿名,省去了命名的痛苦,同時賦給了一個變量,變數就成了功能的代名詞,接著看
#3. 將方法作為一個物件##
// 定义 var test = { fun1: function(){ }, fun2: function(){ } } // 调用 test.fun1(); test.fun2();在Javascript中變數功能很強大,可以代表很多東西。
4. 建構子中為物件新增方法
// 给对象添加方法 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: ( 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(){/…<em>/});</em>是
$(document).ready(function(){/…<em>/})</em>的簡寫形式,是在DOM載入完成後執行的回調函數,只會執行一次。
$( document ).ready(function() { console.log( "ready!" ); });與如下寫法等價
$(function() { console.log( "ready!" ); });在一個頁面中不同的js中寫的
$(function(){/…<em>/}); </em>函數,會依照js的排列順序依序執行。
javascript高階教學】#
以上是javascript函數的寫法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!