亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript引用類型Function實例詳解

2019-11-19 13:18:08
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript引用類型Function。分享給大家供大家參考,具體如下:

Function類型

函數是對象,函數名是指針:每個函數都是Function類型的實例。由于函數是對象,因此函數名是一個指向函數對象的指針,不會與某個函數綁定,一個函數可能會有多個名字。

function getSum(a, b) {  return a + b;}alert(getSum(2, 3));//5var copy = getSum;alert(copy(2, 3));//5getSum = null;alert(copy(2, 3));//5

定義函數的方式有三種:函數聲明函數表達式Function構造函數

Function構造函數接收任意數量的參數,前面的參數枚舉了函數的參數,最后一個參數是函數體。一般不推薦使用Function構造函數定義函數。

var getSum = new Function("a", "b", "return a + b";

JavaScript沒有函數重載的概念,若聲明了兩個同名函數,則后面的函數會覆蓋前面的函數。

由于函數名本身是變量,因此函數也可以作為值來使用,不僅可以傳遞一個函數作為參數,還可以將函數作為返回值。

function callFunction(func, arguments) {  return func(arguments);}function sayHello(name) {  return "Hello, " + name;}var result = callFunction(sayHello, "Alice");alert(result);//Hello, Alice

①、函數聲明

function 函數名稱(參數|可選) { 函數體 }

例:

function func1(){// 聲明,程序的一部分  function func() {// 聲明,函數體的一部分    ...//函數體  }}

②、函數表達式

function 函數名稱|可選(參數|可選) { 函數體 }

例1:

var fun = function func() {};//表達式,賦值表達式的一部分

例2:

new function func(){};//表達式,new表達式

例3:

(function func(){});//表達式,包含在分組操作符――括號()內,括號()內只能包含表達式

例4:

[function func() {}];//表達式,數組初始化器內只能是表達式

例5:

1, function func() {};//表達式,逗號只能操作表達式

③、函數構造器

函數構造器創建的函數的[[Scope]]屬性僅包含全局對象。

<script>  var a = 1;  func1();  function func1() {    var a = 2;    var b = 3;    var func2 = new Function("alert(a); alert(b);");    func2();//1,b is not defined  }</script>

函數構造器創建的函數func2可以從全局對象中取得變量a,但全局對象中沒有b,因此報錯:b未定義。

函數聲明和函數表達式的區別

1)函數聲明在進入上下文階段創建,在代碼執行階段就已經可用了,函數表達式則是在代碼執行階段才創建,所以函數聲明可以提升,但函數表達式則不能。

函數聲明提升:

func();//Function declarationfunction func(){  alert("Function declaration");}

函數表達式不能提升:

func();//報錯:func is not a functionvar func = function (){  alert("Function expression");}

2)函數聲明影響變量對象VO,也就是存儲在上下文的VO中的變量對象,函數表達式不影響變量對象VO,不存在于變量對象中,這意味著既不可能通過名稱在函數聲明之前調用它,也不可能在聲明之后調用它。但是,函數表達式在遞歸調用中可以通過名稱調用自身。

例1:

alert(func); //報錯:func is not a function。定義之前不可用,因為它在代碼執行階段創建(function func() {});alert(func); //報錯:func is not a function。定義之后也不可用,因為它不在變量對象VO中

例2:

(function func(param) {  if (param) {    return;  }  func(true);//func可用,遞歸調用可以通過名稱調用自身})();func(); // func is not a function,外部不可用

3)函數聲明只能出現在程序或函數體內,不能出現在表達式或塊({ … })中,如if、while或for語句中。因為JavaScript無塊級作用域,只有函數和全局作用域。 函數表達式出現在表達式的位置。

函數聲明:有的瀏覽器會返回if,而有的瀏覽器會返回else。

if (true) {  function func() {    alert('if');  }}else {  function func() {    alert('else');  }}func();

函數表達式:所有瀏覽器都返回if。

var func;if (true) {  func = function() {    alert('if');  };}else {  func = function() {    alert('else');  };}func();

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript常用函數技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩大片免费观看视频播放| 亚洲男人天堂2019| 久久久中精品2020中文| 97在线视频国产| 欧美风情在线观看| 日韩欧美视频一区二区三区| 亚洲天堂成人在线| 欧美亚洲一区在线| 8x海外华人永久免费日韩内陆视频| 久久亚洲国产精品| 亚洲激情国产精品| 中文在线不卡视频| 日韩精品视频免费专区在线播放| 日韩av免费在线播放| 日韩精品在线免费观看| 久久精品成人一区二区三区| 97视频在线观看免费高清完整版在线观看| 亚洲激情视频在线| 亚洲国产天堂久久综合| 精品国产一区二区三区久久久| 亚洲一区二区国产| 国产视频久久久| 成人深夜直播免费观看| 欧美裸体xxxx极品少妇| 欧美激情免费观看| 久久国产一区二区三区| 日韩网站免费观看| 91精品视频在线免费观看| 精品国产福利视频| 亚洲人精选亚洲人成在线| 欧美日产国产成人免费图片| 国产日韩专区在线| 日韩中文综合网| 亚洲视频999| 日韩一级裸体免费视频| 亚洲国产高清高潮精品美女| 成人免费视频网址| 欧美综合第一页| 不卡av在线播放| 国产a∨精品一区二区三区不卡| 日韩av片免费在线观看| 国产高清视频一区三区| 日韩av高清不卡| 欧美日韩性视频| 日韩精品中文字幕在线观看| 日本sm极度另类视频| 亚洲一级黄色片| 欧美极品在线播放| 中文字幕日韩精品有码视频| 国产大片精品免费永久看nba| 国产精品精品久久久| 亚洲精品xxxx| 91国在线精品国内播放| 亚洲qvod图片区电影| 久久久久久九九九| 91天堂在线视频| 欧美久久久精品| 欧美一区二区三区免费观看| 尤物九九久久国产精品的特点| 国产亚洲激情视频在线| 精品香蕉在线观看视频一| 欧美黑人性生活视频| 久久视频免费在线播放| 国产欧美日韩高清| 色综合久久中文字幕综合网小说| 久久久久久有精品国产| 日韩经典中文字幕在线观看| 国产成人精品a视频一区www| 日韩欧美亚洲国产一区| 国产精品久久久久aaaa九色| 欧美成人精品h版在线观看| 日韩精品免费在线视频观看| 亚洲国产另类 国产精品国产免费| 国产精品久久久久久亚洲调教| 中文字幕亚洲欧美日韩2019| 日韩成人在线播放| 亚洲一区二区中文| 亚洲国产成人在线视频| 久久久久国色av免费观看性色| 久久亚洲国产成人| 欧美性猛交xxxx| 欧美成年人视频网站欧美| 久久久国产精品一区| 欧美成人在线免费视频| 成人两性免费视频| 91精品国产综合久久久久久久久| 韩国精品美女www爽爽爽视频| 日韩欧美成人网| 国产精品精品视频一区二区三区| 日本精品一区二区三区在线| 777777777亚洲妇女| 国产精品免费视频久久久| 亚洲香蕉成视频在线观看| 91久久久久久久久久久| 亚洲精品91美女久久久久久久| 欧美亚洲日本网站| 中文亚洲视频在线| 一区二区在线免费视频| 日本久久精品视频| 亚洲精品国精品久久99热| www.久久草.com| 亚洲精品美女免费| 5566日本婷婷色中文字幕97| 国产精品高潮呻吟久久av无限| 大胆人体色综合| 欧美大秀在线观看| 国产噜噜噜噜久久久久久久久| 伊人一区二区三区久久精品| 日韩精品在线免费观看视频| 国语自产精品视频在线看抢先版图片| 午夜欧美不卡精品aaaaa| 精品国产自在精品国产浪潮| 久久免费国产视频| 日韩欧美主播在线| 国产成人精品电影| 国产中文字幕日韩| 毛片精品免费在线观看| 97视频网站入口| 精品国产鲁一鲁一区二区张丽| 夜夜狂射影院欧美极品| 成人欧美在线视频| 精品国产一区二区三区久久久| 亚洲欧美激情四射在线日| 日韩av在线一区| 午夜精品福利视频| 日本午夜人人精品| 日韩av免费在线| 欧美日韩中文字幕综合视频| 中文字幕av一区二区| 91精品免费久久久久久久久| 国产精品稀缺呦系列在线| 日韩小视频在线观看| 亚洲精品福利在线| 一本色道久久综合狠狠躁篇的优点| 亚洲一区亚洲二区亚洲三区| 久久视频国产精品免费视频在线| 一本一本久久a久久精品牛牛影视| zzjj国产精品一区二区| www.久久草.com| 92版电视剧仙鹤神针在线观看| 久久免费福利视频| 欧美在线免费观看| 欧美一区二区三区艳史| 欧美精品videosex极品1| 国产亚洲精品久久| 夜夜狂射影院欧美极品| 国产成人精品视频| 国产精品永久免费观看| 国产精品视频久久久| 亚洲最新视频在线| 欧美xxxwww| 4438全国成人免费| 久久久久久有精品国产| 日韩av最新在线| 国产成人av网址| 国产精品欧美风情| 国产精品麻豆va在线播放| 欧美体内谢she精2性欧美| 国产成人在线视频| 青草青草久热精品视频在线观看| 亚洲无线码在线一区观看| 欧美激情免费视频| 日韩电影中文字幕| 国产精品欧美风情|