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

返回函數(shù)的JavaScript函數(shù)

 更新時間:2016年06月14日 14:57:40   投稿:lijiao  
理解返回函數(shù)的JavaScript函數(shù)是什么意思,通過幾個簡短的例子真正理解返回函數(shù)的JavaScript函數(shù)到底是什么?感興趣的小伙伴們可以參考一下

幾個星期前,我發(fā)了一條微博說我喜歡返回函數(shù)的函數(shù)。很快就出現(xiàn)了幾個回復,基本是都是….什么東東?!對于一個程序員來說,理解返回函數(shù)的函數(shù)是一個非常重要的技能,使用它你能節(jié)省很多代碼,讓JavaScript更高效,讓你進一步理解JavaScript的強大之處。下面是我寫的幾個簡單的例子,我希望通過它你能理解我所表達的意思。

假設你有一個對象,包含有兩個子對象,它們都有get方法,這兩個方法非常相似,稍有不同:

var accessors = {
 sortable: {
 get: function() {
  return typeof this.getAttribute('sortable') != 'undefined';
 }
 },
 droppable: {
 get: function() {
  return typeof this.getAttribute('droppable') != 'undefined';
 }
 }
};

重復的代碼不是一個好的現(xiàn)象,所以我們要創(chuàng)建一個外部函數(shù),接受一個屬性名稱:

function getAttribute(attr) {
 return typeof this.getAttribute(attr) != 'undefined';
}

var accessors = {
 sortable: {
 get: function() {
  return getAttribute('sortable');
 }
 },
 droppable: {
 get: function() {
  return getAttribute('droppable');
 }
 }
};

這樣好多了,但仍不完美,因為還是有些多余的部分,更好的方法是要讓它直接返回最終需要的函數(shù)——這樣能消除多余的函數(shù)執(zhí)行:

function generateGetMethod(attr) {
 return function() {
 return typeof this.getAttribute(attr) != 'undefined';
 };
}

var accessors = {
 sortable: {
 get: generateGetMethod('sortable')
 },
 droppable: {
 get: generateGetMethod('droppable')
 }
};

/* 它跟最初的方法是完全等效的:*/

var accessors = {
 sortable: {
 get: function() {
  return typeof this.getAttribute('sortable') != 'undefined';
 }
 },
 droppable: {
 get: function() {
  return typeof this.getAttribute('droppable') != 'undefined';
 }
 }
};

*/

上面你看到的就是一個返回函數(shù)的函數(shù);每個子對象里都有了自己的get方法,但卻去掉了多余的函數(shù)嵌套執(zhí)行過程。

這是一種非常有用的技術,能幫你消除重復相似的代碼,如果使用的恰當,能讓你的代碼更可讀,更易維護!

大家理解了嗎?

相關文章

  • uniapp中使用vuex并持久化的方法示例

    uniapp中使用vuex并持久化的方法示例

    vuex是基于vuex.js的狀態(tài)管理工具,可以把它理解為一個倉庫,下面這篇文章主要給大家介紹了關于uniapp中如何使用vuex并持久化的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • JQuery入門——用one()方法綁定事件處理函數(shù)(僅觸發(fā)一次)

    JQuery入門——用one()方法綁定事件處理函數(shù)(僅觸發(fā)一次)

    one()方法功能是為所選的元素綁定一個僅觸發(fā)一次的處理函數(shù),感興趣的朋友可以了解下它的調用語法為:one(type, [data], fn),閱讀本文或許有意外的收獲呢
    2013-02-02
  • JavaScript實現(xiàn)滑塊驗證解鎖

    JavaScript實現(xiàn)滑塊驗證解鎖

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)滑塊驗證解鎖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • js添加事件的通用方法推薦

    js添加事件的通用方法推薦

    下面小編就為大家?guī)硪黄猨s添加事件的通用方法推薦。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript適配器模式詳解

    JavaScript適配器模式詳解

    這篇文章主要為大家詳細介紹了JavaScript適配器模式的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • JavaScript模擬實現(xiàn)Promise功能的示例代碼

    JavaScript模擬實現(xiàn)Promise功能的示例代碼

    這篇文章主要為大家詳細介紹了JavaScript如何模擬實現(xiàn)Promise功能,文中的示例代碼講解詳細,對我們學習JavaScript有一定的幫助,需要的可以參考一下
    2022-12-12
  • JavaScript中 this 指向問題深度解析

    JavaScript中 this 指向問題深度解析

    這篇文章主要介紹了JavaScript中 this 指向問題深度解析,JavaScript 中的 this 指向問題有很多文章在解釋,仍然有很多人問,本文給大家深度解析,需要的朋友可以參考下
    2017-02-02
  • 使用微信小程序顯示用戶當前地理位置的詳細代碼

    使用微信小程序顯示用戶當前地理位置的詳細代碼

    這篇文章主要介紹了使用微信小程序顯示用戶當前地理位置的詳細代碼,在微信小程序的開發(fā)中不可避免的會遇到需要顯示用戶地理位置的操作,本文將簡單介紹如何在微信小程序中顯示用戶當前的地理位置,需要的朋友可以參考下
    2022-06-06
  • SOSO地圖JS畫出標注和中心點以html形式運行

    SOSO地圖JS畫出標注和中心點以html形式運行

    SOSO地圖想必大家都知道吧,本文將為大家詳細介紹下使用JS畫出標注和中心點,直接貼出代碼,感興趣的朋友可以參考下
    2013-08-08
  • 詳解JS如何判斷對象上是否存在某個屬性

    詳解JS如何判斷對象上是否存在某個屬性

    判斷某一個對象里面是否存在某個屬性,是常見錯誤場景排查,但是你真的知道該如何使用嘛,本文為大家整理了常用的三種方法,希望對大家有所幫助
    2023-05-05

最新評論

克山县| 迭部县| 昌乐县| 延安市| 诏安县| 德令哈市| 逊克县| 周宁县| 纳雍县| 英德市| 类乌齐县| 中西区| 都江堰市| 荥经县| 礼泉县| 绥宁县| 中山市| 贡觉县| 兴山县| 富顺县| 玛多县| 洪湖市| 平谷区| 张家界市| 泰宁县| 木里| 临朐县| 临潭县| 绥棱县| 沿河| 泌阳县| 五指山市| 宜城市| 尤溪县| 伊宁县| 深水埗区| 桂阳县| 辽宁省| 常熟市| 富蕴县| 南雄市|