Javascript 设计模式

avatarplhDigital nomad

JavaScript的本质

说的是原生JavaScript的本质,而不是浏览器中JavaScript的本质,浏览器中JavaScript的本质是事件代理与事件订阅,而原生JavaScript是原型继承,说到继承不得不说闭包,事实上,每个函数都是闭包,函数内部变量外部不可访问,这就是闭包的本质,函数运行完后,内部变量会被回收,而仍然被引用的变量不会被回收。

那么再说原型继承吧,

var obj = {};   // new Object();
// 当我想创建一个一模一样的对象obj的时候,也许你会想到,浅复制,深复制,或者Object.creat()
// 但是JavaScript的核心思想确认为,应该new obj(); new所做的事情就是原型指向obj,

封装

模块与模块之间,通过暴露的API进行交互, 这个模块独立有助于复用与隔离,就像,为什么要进行前后端分离,方便不同人做不同事,方便定责,前后端交互建立在接口json数据交互,而大型JavaScript应用,交互建立在暴露的API上。

填鸭式

JavaScript是动态语言,也就是说一个函数,它返回的是什么那他就是什么,一个数组可以表现成对象,也可以是函数,他是什么取决于它返回的是什么,同时这也是函数式编程的,,,,,,,,,,,,,,

const one = () => 1;
one() // 1