詳解JavaScript自定義函數(shù)
一、定義方法:在Javascript中必須用function關(guān)鍵字
function funcName(arg1,arg2...)
{
statements;
return "變量值"; //返回值可以根據(jù)函數(shù)的需要
}
函數(shù)名是函數(shù)自身的一個引用。此種方式創(chuàng)立的函數(shù)引用是獨立存在的,無法刪除。
1、調(diào)用函數(shù):函數(shù)名(參數(shù)列表)。
傳遞的參數(shù)不必與函數(shù)定義的參數(shù)個數(shù)一致,并且可以設(shè)定函數(shù)參數(shù)的默認(rèn)值。
function example(a,b){
var a = arguments[0] ? arguments[0] : 1;//設(shè)置參數(shù)a的默認(rèn)值為
var b = arguments[1] ? arguments[1] : 2;//設(shè)置參數(shù)b的默認(rèn)值為2
return a+b;
}
alert(example()); //輸出3
其他方法:設(shè)置默認(rèn)參數(shù)方式
2、嵌套函數(shù):在JS中,函數(shù)的定義中還可以再次定義新的函數(shù)
function say()
{
function add(x,y)
{
return (x+y);
}
alert(add(2,3));
}
say(); //輸出5
內(nèi)嵌函數(shù)add()只能在嵌套它的函數(shù)(say())中調(diào)用,而不能再外部調(diào)用。
3、條件函數(shù):
var b = false;
if(b)
{
function ex1()
{
alert(1);
}
ex1();
}
else
{
function ex2()
{
alert(0);
}
ex2();
}
輸出0,將b的值改為TRUE,則輸出1,不演示。條件函數(shù)的花括號不具有范圍限制,即可以在花括號外訪問函數(shù)。
二 、函數(shù)的特殊條用方式:網(wǎng)頁中的所有方法可以看做全局對象window對象的方法
function add(x,y)
{
return x+y;
}
//1
alert(window.add(2,3));
//2
alert(window['add'](2,3));
以上結(jié)果均是5
三、函數(shù)表達(dá)式定義函數(shù):匿名函數(shù)
1、定義方式:var fucName = function(arg1,arg2,...){statements;}
var add = function (x,y)
{
return x+y;
}
alert(add(2,3));//輸出為5
其中,add是該函數(shù)的唯一引用,當(dāng)add=null,該函數(shù)便不能再調(diào)用。
2、匿名自執(zhí)行函數(shù):
(function(x,y)
{
alert(x + y) ;
})(2,3); //立即自動執(zhí)行,結(jié)果為5
3、匿名函數(shù)的用途
2.1 用于一次調(diào)用后就丟棄的函數(shù)
2.2 向prototype屬性附加函數(shù)以實現(xiàn)對象方法的定義
四、使用Function定義函數(shù):
在JS中,F(xiàn)unction為核心類的一種,而其他方式定義的函數(shù)也均作為對象對待,因為在JS中的OOP中,不存在類的概念,這是JS與Java、C#等語言的區(qū)別。
var add = new Function(“函數(shù)參數(shù)”,"函數(shù)體"); add為函數(shù)名,即函數(shù)的一個引用。
var add = new Function('x','y',"return x+y");
alert(add(2,3));
上述的結(jié)果為5.
五、閉包函數(shù):當(dāng)一個函數(shù)不位于它所處環(huán)境(變量的作用范圍)被調(diào)用,仍可使用本地變量(脫離了變量的作用范圍仍可使用該變量),這是閉包函數(shù)的顯著特征。
5.1 作為值從函數(shù)返回的函數(shù)是閉包函數(shù)
function B()
{
var temp="abc";
function A()
{
alert("閉包函數(shù)處理本地變量temp = "+temp);
}
return A;
}
var a = B();
a();
運行結(jié)果:(本地變量是函數(shù)內(nèi)聲明的變量)

5.2 利用變量的作用范圍形成閉包函數(shù)
var F;
function B()
{
var temp="abc";
F=function ()
{
alert("利用變量范圍形成閉包函數(shù)處理本地變量temp = "+temp);
}
}
B();
F();
運行結(jié)果

以上就是詳解JavaScript自定義函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript自定義函數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用 JavaScript如何獲取當(dāng)月的第一天和最后一天
這篇文章主要介紹了使用 JavaScript如何獲取當(dāng)月的第一天和最后一天,通過本文學(xué)習(xí)了如何使用 JavaScript 中的Date.getFullYear()和?Date.getMonth()方法獲得某個特定月份的第一天和最后一天,需要的朋友可以參考下2023-05-05
webpack構(gòu)建vue項目的詳細(xì)教程(配置篇)
本篇文章主要介紹了webpack構(gòu)建vue項目的詳細(xì)教程(配置篇),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
Javascript生成器(Generator)的介紹與使用
這篇文章主要給大家介紹了關(guān)于Javascript生成器(Generator)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
javascript實現(xiàn)圖片自動和可控的輪播切換特效
這篇文章主要介紹了javascript實現(xiàn)圖片自動和可控的輪播切換特效,效果非常的棒,推薦給大家,有需要的小伙伴可以參考下。2015-04-04
JavaScript中實現(xiàn)最高效的數(shù)組亂序方法
這篇文章主要介紹了JavaScript中實現(xiàn)最高效的數(shù)組亂序方法,數(shù)組亂序的意思是,把數(shù)組內(nèi)的所有元素排列順序打亂,需要的朋友可以參考下2014-10-10
JavaScript 自動分號插入(JavaScript synat:auto semicolon insertion)
今天在看《Extjs中文手冊》的時候,寫了四五行樣例代碼,結(jié)果IE和Firefox一直報錯不通過。2009-11-11
淺述節(jié)點的創(chuàng)建及常見功能的實現(xiàn)
本文主要對節(jié)點的創(chuàng)建及常見功能的實現(xiàn)方法進(jìn)行介紹,希望會對大家學(xué)習(xí)javascript有所幫助,下面就跟小編一起來看下吧2016-12-12

