摘要:脫離,擁抱行為委托式編程今天分享的雞湯來自于有書共讀你的衣服淘汰的太快,居然是網(wǎng)絡(luò)時代的錯任何新方法,任何可以使事情更易完成的方法都是科技,這才是對科技的正確理解。
脫離OO,擁抱“行為委托”式編程
今天分享的雞湯來自于“有書共讀”——《你的衣服淘汰的太快,居然是網(wǎng)絡(luò)時代的錯》
任何新方法,任何可以使事情更易完成的方法都是科技,這才是對科技的正確理解。
相信大家都很熟悉Javascript“面向?qū)ο蟆本幊蹋沁@種設(shè)計模式對于JS來說,我認(rèn)為不是一個簡單的科學(xué)的設(shè)計模式。先來上代碼
面向?qū)ο缶幊?/p>
function Widget(width, height) { this.width = width || 50; this.height = height || 50; this.$elem = null; } Widget.prototype.render = function ($where) { if(this.$elem){ this.$elem.css({ width : this.width + "px", height : this.height + "px" }).appendTo( $where ) } }; //子類 function Button(width, height, label) { //調(diào)用super 構(gòu)造函數(shù) Widget.call(this, width, height); this.label = label || "Default"; this.$elem = $("
總結(jié):在上面代碼中出現(xiàn)了顯示的偽多態(tài),即通過Widget.call和Widget.prototype.render.call從“子類”方法中引用“父類方法”中的基礎(chǔ)方法。本來就不適合為什么要強(qiáng)行使用呢?真的好看么?
行為委托方式
var Widget = { init : function (width, height) { this.width = width || 50; this.height = height || 50; this.$elem = null }, insert : function ($where) { if(this.$elem){ this.$elem.css({ width : this.width + "px", height : this.height + "px" }).appendTo($where) } } }; var Button = Object.create(Widget); Button.setup = function (width, height, label) { //委托調(diào)用 this.init(width, height); this.label = label; this.$elem = $("
總結(jié):兩種編程的風(fēng)格不同如果說簡潔度可能OO會比較好一點(diǎn),但是對相關(guān)聯(lián)可以更好的支持關(guān)注分離原則,創(chuàng)建和初始化并不需要合并為一個步驟。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/80716.html
摘要:操作符或調(diào)用函數(shù)時傳入?yún)?shù)的操作都會導(dǎo)致關(guān)聯(lián)作用域的賦值操作。此外可以使用和來設(shè)置對象及其屬性的不可變性級別。忽視這一點(diǎn)會導(dǎo)致許多問題。使用調(diào)用函數(shù)時會把新對象的屬性關(guān)聯(lián)到其他對象。 前言 《你不知道的 javascript》是一個前端學(xué)習(xí)必讀的系列,讓不求甚解的JavaScript開發(fā)者迎難而上,深入語言內(nèi)部,弄清楚JavaScript每一個零部件的用途。本書介紹了該系列的兩個主題:...
摘要:這對復(fù)雜問題定位是有好處的。同時,也是純函數(shù),與的是純函數(shù)呼應(yīng)。強(qiáng)約束約定,增加了內(nèi)聚合性。通過約定和全局的理解,可以減少的一些缺點(diǎn)。約定大于配置也是框架的主要發(fā)展方向。 React+Redux非常精煉,良好運(yùn)用將發(fā)揮出極強(qiáng)勁的生產(chǎn)力。但最大的挑戰(zhàn)來自于函數(shù)式編程(FP)范式。在工程化過程中,架構(gòu)(頂層)設(shè)計將是一個巨大的挑戰(zhàn)。要不然做出來的東西可能是一團(tuán)亂麻。說到底,傳統(tǒng)框架與rea...
摘要:在創(chuàng)業(yè)初期,你招來的工程師必須是能夠獨(dú)當(dāng)一面的大神隊友。要評估一個應(yīng)聘者的真實(shí)水準(zhǔn),最佳方式就是結(jié)對編程。用微博的抓取消息并顯示在時間線上,就是個很好的考察應(yīng)聘者的面試項目。不過結(jié)對編程再好使,也沒辦法讓你完全了解一個應(yīng)聘者。 原文鏈接:10 Interview Questions Every JavaScript Developer Should Know 對大部分公司來說,招聘技...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...
閱讀 2121·2023-04-26 02:19
閱讀 1914·2021-11-19 09:40
閱讀 1704·2021-09-29 09:35
閱讀 3575·2021-09-29 09:34
閱讀 4297·2021-09-07 10:16
閱讀 5530·2021-08-11 11:14
閱讀 3578·2019-08-30 15:54
閱讀 1629·2019-08-30 15:53