《你不知道的js》中倡導的程式設計風格?

時間 2021-05-31 12:50:22

1樓:

我也是看到這裡很困惑,

OLOO簡單容易理解是正道,模擬類感覺一副掛羊頭賣狗肉的感覺。

但是這狗肉用ES6烹煮地真香啊。

我選擇class。

2樓:龍騰道默默地

教學案例是不可能窮盡現實中所有的需求場景的。在特定場景下,總有最優解,而其它的就會令人費解。

物件導向、面向過程和函式式程式設計、宣告式程式設計都有自己的適用場景,和難做的地方。

new class是物件導向語言的寫法。確實,有了class語法,還是會經常需要對它手動擴充套件。可是沒有class語法,那你常常要連class語法替你做的事一起手動實現。

js為了兼顧兩種使用場景,也加上了物件導向語言中的 this 支援。閉包是非物件導向程式設計為了做物件導向容易做的事而發明的,而箭頭函式能夠讓人在使用閉包時還能像原來那樣使用this。

一般來說,此類內容的書籍都是給有大量實踐經驗的人反思超越用的,不是用於新人入門的。當然了,目前還沒有一本好的js零基礎入門書籍(阮大的書針對ES6,MDN中ES5和ES6揉雜,w3school中順序混亂還有錯誤,其它好書用於新人教學更是掛一漏萬囉嗦無比),所以也不多說了。希望我能有時間盡早寫好。

3樓:商文龍

關鍵是理念的差別,你是否認同Composition over inheritance,你是否願意用composition 的理念來編寫程式,還是用虛假的class來欺騙自己?

4樓:Christopher

這本書的本質不是告訴你怎麼 code 是好,或者不好,起碼你不該這樣去讀它。這本書最大的價值是讓你明白不同 code style 的區別,或者說是原理。

5樓:

arrow function和class就是針對js的this陷阱和原型鏈的這兩大毒瘤做的補丁。不能把bug用多了當成特性呀,kof97的無限連是不錯,但用在比賽上會給別人造成麻煩,這是bug,下一代必然要堵上。

6樓:Shaopeng

從書裡的描述來看,作者的觀點是OLOO總比Class的形式要好。如果你唯讀這本書,那麼結論必然是我們不需要傳統的class形式。

現實中有幾點需要考慮:

1. Class在構建物件例項時的介面更加統一

// class

var f = new Foo(123, 'abc') // 標準

//OLOO

var f = Object.create(Foo) // 需要兩個步驟

f.init(123, 'abc') // init並不是JS中的標準函式,而是Foo中自定義的

2. Class可以自帶Static方法,OLOO定義的方法全都在prototype上面

Function FooFoo.prototype.method = functionFoo.

staticMethod = functionguaranteed to be static method: has no access to `this`

3. Class對於人們(尤其是後端程式設計師)更容易接受。人們往往不是選擇最優秀的解法,而是最容易接受或理解的解法。。。

揭秘你不知道的冷知識

你所不知道的泡麵冷知識!每當夜深人靜或是不知道要吃什麼的時候,泡麵便成了我們的首選。一碗香噴噴又美味的泡麵 想著都是誘人 雖然知道它對人體有一定的壞處,但還是很難抗拒它的魅力!下面是關於泡麵的一些冷知識 1 在泡麵剛上市的時候,並不像現在這樣廉價,不是一般的平明老百姓能享用的,而是有錢人才能吃的奢侈...

你知不知道順治皇帝的去向

康姆阿里 嗯,這個問題很好回答,很明確是因病而亡,沒有出家當和尚,而是找了個人替他出家當和尚。想簡單快速了解順治皇帝,可以詳讀 清史稿 和 清實錄 中關於順治皇帝的評價。原文簡要摘錄如下 清史稿 順治之初,睿王攝政。入關定鼎,奄宅區夏。然兵事方殷,休養生息,未遑及之也。迨帝親總萬幾,勤政愛民,孜孜求...

不知道自己不知道是一種怎樣的體驗?

Vangz 據我們所知,有 已知的已知 有些事,我們知道我們知道 我們也知道,有 已知的未知 也就是說,有些事,我們現在知道我們不知道。但是,同樣存在 不知的不知 有些事,我們不知道我們不知道。 德川家光 先講乙個人,明朝年間著名的思想家王陽明,在他年輕的時候。曾經做過很多荒唐的事情。十歲的王守仁開...