在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 便于javascript編程模式的問題?

便于javascript編程模式的問題?

js是一種面向?qū)ο缶幊痰恼Z言,那么日常中什么樣的編碼方式屬于面向?qū)ο?,什么又是函?shù)式編程呢?
可以分別舉例嗎?
這是我理解的函數(shù)式編程:

var page = {
    init : function(){
        this.onLoad();
        this.bindEvent();
    },
    onLoad : function(){
        code here;
    },
    bindEvent : function(){
        code here;
    }
}
$(function(){
    page.init();
});
回答
編輯回答
涼汐

js當(dāng)時(shí)設(shè)計(jì)的時(shí)候并不像傳統(tǒng)的面向?qū)ο缶幊陶Z言。你可以去看看underscore的語法,他有一種語法是
_.each(arr);也可以是_(arr).each(); 如果沒記錯的話,前面那種就是函數(shù)式編程,后面那種是面向?qū)ο?/p>

2017年10月14日 04:16
編輯回答
糖果果

除了面向?qū)ο?,函?shù)式之外,還有一個面向過程。常用語言中,這三種方法都是混用的,并不是在用哪一種。

  • 面向過程是大家最初學(xué)習(xí)的程序概念,也就是順序、分支、循環(huán)
  • 面向?qū)ο蟮牡湫退季S是什么東西/誰(對象),干了什么(方法)
  • 函數(shù)式的典型思維是由什么樣的輸入,得到什么樣的輸出,即數(shù)學(xué)中的 g = f(x)

一個例子

// OOP
obj.run1();
obj.run2();
obj.run3();
// Functional
run3(run2(run1(obj)))
// 有機(jī)結(jié)合
obj.run1().run2().run3()

可以看出來,OOP 就是在說對象干什么;函數(shù)式就是在不斷的計(jì)算(使用 Excel 公式的時(shí)候就是這個感覺);當(dāng)調(diào)用對象方法得到一個計(jì)算結(jié)果,再基于這個結(jié)果繼續(xù)調(diào)用后續(xù)方法的時(shí)候(鏈?zhǔn)剑?,?yán)格的說是 OOP,但也具備了函數(shù)式連續(xù)運(yùn)算的特征,所以可以看作是有機(jī)結(jié)合。

2017年5月30日 05:09