摘要:脫離,擁抱行為委托式編程今天分享的雞湯來自于有書共讀你的衣服淘汰的太快,居然是網(wǎng)絡(luò)時(shí)代的錯(cuò)任何新方法,任何可以使事情更易完成的方法都是科技,這才是對(duì)科技的正確理解。
脫離OO,擁抱“行為委托”式編程
今天分享的雞湯來自于“有書共讀”——《你的衣服淘汰的太快,居然是網(wǎng)絡(luò)時(shí)代的錯(cuò)》
任何新方法,任何可以使事情更易完成的方法都是科技,這才是對(duì)科技的正確理解。
相信大家都很熟悉Javascript“面向?qū)ο蟆本幊蹋沁@種設(shè)計(jì)模式對(duì)于JS來說,我認(rèn)為不是一個(gè)簡單的科學(xué)的設(shè)計(jì)模式。先來上代碼
面向?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會(huì)比較好一點(diǎn),但是對(duì)相關(guān)聯(lián)可以更好的支持關(guān)注分離原則,創(chuàng)建和初始化并不需要合并為一個(gè)步驟。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/80716.html
摘要:操作符或調(diào)用函數(shù)時(shí)傳入?yún)?shù)的操作都會(huì)導(dǎo)致關(guān)聯(lián)作用域的賦值操作。此外可以使用和來設(shè)置對(duì)象及其屬性的不可變性級(jí)別。忽視這一點(diǎn)會(huì)導(dǎo)致許多問題。使用調(diào)用函數(shù)時(shí)會(huì)把新對(duì)象的屬性關(guān)聯(lián)到其他對(duì)象。 前言 《你不知道的 javascript》是一個(gè)前端學(xué)習(xí)必讀的系列,讓不求甚解的JavaScript開發(fā)者迎難而上,深入語言內(nèi)部,弄清楚JavaScript每一個(gè)零部件的用途。本書介紹了該系列的兩個(gè)主題:...
摘要:這對(duì)復(fù)雜問題定位是有好處的。同時(shí),也是純函數(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è)計(jì)將是一個(gè)巨大的挑戰(zhàn)。要不然做出來的東西可能是一團(tuán)亂麻。說到底,傳統(tǒng)框架與rea...
摘要:在創(chuàng)業(yè)初期,你招來的工程師必須是能夠獨(dú)當(dāng)一面的大神隊(duì)友。要評(píng)估一個(gè)應(yīng)聘者的真實(shí)水準(zhǔn),最佳方式就是結(jié)對(duì)編程。用微博的抓取消息并顯示在時(shí)間線上,就是個(gè)很好的考察應(yīng)聘者的面試項(xiàng)目。不過結(jié)對(duì)編程再好使,也沒辦法讓你完全了解一個(gè)應(yīng)聘者。 原文鏈接:10 Interview Questions Every JavaScript Developer Should Know 對(duì)大部分公司來說,招聘技...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個(gè)家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個(gè)家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...
閱讀 2136·2023-04-26 02:19
閱讀 1924·2021-11-19 09:40
閱讀 1712·2021-09-29 09:35
閱讀 3581·2021-09-29 09:34
閱讀 4332·2021-09-07 10:16
閱讀 5552·2021-08-11 11:14
閱讀 3589·2019-08-30 15:54
閱讀 1639·2019-08-30 15:53