最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript函數(shù)的四種調(diào)用模式

 更新時間:2017年01月08日 08:46:20   作者:danger丶旋律  
本文詳細介紹了javascript函數(shù)的四種調(diào)用模式。具有一定的參考價值,下面跟著小編一起來看下吧

1、介紹

先介紹一下函數(shù)的調(diào)用模式有哪四種:

  •  函數(shù)調(diào)用模式,
  •  方法調(diào)用模式,
  •  構(gòu)造函數(shù)調(diào)用模式,
  •  上下文調(diào)用模式;

在這里對于函數(shù)的調(diào)用模式,主要介紹每種調(diào)用模式的this的指向和返回值。

2、代碼分析

①、函數(shù)調(diào)用模式

下面的調(diào)用模式就是大家最熟悉的函數(shù)調(diào)用模式,而函數(shù)調(diào)用模式的this指向和返回值是什么呢?

function fn1 () {
 console.log(this); 
};
fn1(); // 在調(diào)用函數(shù)fn1時,輸出的this的結(jié)果是Window

在上述代碼中,fn1也就是函數(shù)調(diào)用模式中的this是指向Window的,而返回值是由return決定。

可以得出以下結(jié)論(函數(shù)調(diào)用模式中):

  a, this是指向Window的 

  b, 返回值是由return語句決定的,如果沒有return則表示沒有返回值

②、方法調(diào)用模式

var name = "james";
var obj = {
  name : "wade",
 fn1 : function () {
  console.log(this.name);
 }  
};
obj.fn1(); // 在調(diào)用obj中的fn1方法函數(shù)時,輸出的是wade

通過上面的代碼結(jié)果分析,會得到以下結(jié)論(方法調(diào)用模式中):

  a, this 是指向調(diào)用該方法的對象

  b, 返回值還是由return語句決定,如果沒有return表示沒有返回值

③、構(gòu)造函數(shù)調(diào)用模式

function Fn () {
 this.name = "james",
 this.age = 32,
 console.log(this)   
};
var fn1 = new Fn();  // 在調(diào)用這段代碼的時候,輸出的是Fn {name: "james", age: 32}

通過上面的代碼結(jié)果分析,會得到以下結(jié)論(構(gòu)造函數(shù)調(diào)用模式中):

  a, this是指向構(gòu)造函數(shù)的實例

  b, 如果沒有添加返回值的話,默認的返回值是this

但是如果手動添加返回值之后呢

function Fn1 () {
 this.name = "james";
 return "wade" 
};
var fn1 = new Fn1();
console.log(fn1.name); // 這段代碼輸出的是 james;
function Fn2 () {
 this.name = "james";
 return [1,2,3]; 
};
var fn2 = new Fn2();
console.log(fn2.name); // 而這段代碼輸出的是undefined

而通過上面的代碼結(jié)果分析,優(yōu)化上面的結(jié)論:

  a, this是指向構(gòu)造函數(shù)的實例

  b, 如果沒有添加返回值的話,默認的返回值是this

  c, 如果有返回值,且返回值是簡單數(shù)據(jù)類型(Number,String,Boolean··)的話,最后仍回返回this

  d, 如果有返回值,且返回值是復(fù)雜數(shù)據(jù)類型(對象)的話,最終返回該對象,所以上面的fn2是指向數(shù)組,所以fn2.name為undefined

④、上下文調(diào)用模式

function f1(){
 console.log(this);
}
f1.call(null); // Window
f1.call(undefined); // Window
f1.call(123); // Number的實例
f1.call("abc"); // String的實例
f1.call(true); // Boolean的實例
f1.call([1,2,3]); // Array的實例

通過上面的代碼結(jié)果分析,得出以下結(jié)論(上下文調(diào)用模式中):

  a, 傳遞的參數(shù)不同,this的指向不同,this會指向傳入?yún)?shù)的數(shù)據(jù)類型

  b, 返回值是由return決定,如果沒有return表示沒有返回值。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • js中數(shù)組常用方法總結(jié)(推薦)

    js中數(shù)組常用方法總結(jié)(推薦)

    這篇文章主要介紹了js中數(shù)組常用方法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • JS限制input框只能輸入0~100的正整數(shù)的兩種方法

    JS限制input框只能輸入0~100的正整數(shù)的兩種方法

    本文給大家分享兩種方法實現(xiàn)JS限制input框只能輸入0~100的正整數(shù),方法二是直接通過設(shè)置三個屬性,type、min、max即可,就可以設(shè)置0~100的整數(shù),感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • JavaScript實現(xiàn)常用二級省市級聯(lián)下拉列表的方法

    JavaScript實現(xiàn)常用二級省市級聯(lián)下拉列表的方法

    這篇文章主要介紹了JavaScript實現(xiàn)常用二級省市級聯(lián)下拉列表的方法,實例分析了javascript實現(xiàn)級聯(lián)下拉列表的技巧與相關(guān)的元素操作方法,需要的朋友可以參考下
    2015-03-03
  • 微信小程序?qū)崿F(xiàn)上傳圖片的功能

    微信小程序?qū)崿F(xiàn)上傳圖片的功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)上傳圖片的功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解JS ES6編碼規(guī)范

    詳解JS ES6編碼規(guī)范

    本章節(jié)討論使用ES6編碼風(fēng)格到代碼中需要注意的點。通過記住這些關(guān)鍵點,可以讓我們寫出更優(yōu)美的、可讀性更強的JavaScript ES6風(fēng)格的代碼。
    2021-05-05
  • ES7中利用Await減少回調(diào)嵌套的方法詳解

    ES7中利用Await減少回調(diào)嵌套的方法詳解

    大家都知道在ES7中有了標(biāo)準(zhǔn)的回調(diào)函數(shù)嵌套的解決方案,新增了 async/await兩個關(guān)鍵詞,所以這篇文章主要給大家介紹了關(guān)于Javascript中如何利用Await減少回調(diào)嵌套的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • JavaScript獲取數(shù)組最小值和最大值的方法

    JavaScript獲取數(shù)組最小值和最大值的方法

    這篇文章主要介紹了JavaScript獲取數(shù)組最小值和最大值的方法,涉及javascript中min與max方法的使用技巧,非常簡單實用,需要的朋友可以參考下
    2015-06-06
  • JavaScript實現(xiàn)簡單日歷效果

    JavaScript實現(xiàn)簡單日歷效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)簡單日歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • js中settimeout方法加參數(shù)的使用實例

    js中settimeout方法加參數(shù)的使用實例

    這篇文章主要介紹了js中settimeout方法加參數(shù)的使用,需要的朋友可以參考下
    2014-02-02
  • 微信小程序中使用wxss加載圖片并實現(xiàn)動畫效果

    微信小程序中使用wxss加載圖片并實現(xiàn)動畫效果

    記錄微信小程序中使用wxss加載圖片并實現(xiàn)動畫的方式,最終實現(xiàn)loading效果。本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-08

最新評論

洞口县| 兰州市| 尉氏县| 涪陵区| 华阴市| 崇仁县| 华宁县| 庆安县| 金寨县| 楚雄市| 巨鹿县| 集安市| 雷波县| 济阳县| 九寨沟县| 浮梁县| 曲沃县| 太仆寺旗| 漳浦县| 西乌珠穆沁旗| 桂林市| 锦屏县| 贵德县| 伊宁县| 鄄城县| 嘉义县| 莱阳市| 龙山县| 曲水县| 昭觉县| 崇阳县| 达日县| 汪清县| 云和县| 新乡县| 靖江市| 库尔勒市| 扎鲁特旗| 景洪市| 衡阳市| 南昌县|