封装数据 静态类型语言的对象系统中,封装数据是由语法解析来实现的,比如:private、public、protected 等关键字来提供不同的访问权限。 Javascript 并没有提供对这些关键字的支持,我们只能依赖变量的作...
前端开发
JavaScript面向对象编程之多态
多态同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果,换句话说,给不同的对象发送同一个消息的时候,这些对象会根据这个消息分别给出不同的反馈。 示例 var googleMap = { ...
JavaScript中常见的设计模式
一、单例模式 1. 定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点 2. 核心 确保只有一个实例,并提供全局访问 3. 实现 假设要设置一个管理员,多次调用也仅设置一次,我们可以使...
Html 资源预加载/预连接内容
Html 可以将即将要用到的资源或者即将要握手的地址提前告知浏览器让浏览器利用还在解析HTML计算样式的时间去提前准备好。 preload 使用link的 preload 属性预加载一个资源。 <link rel="preload" hr...
JS中的节流与防抖运用
节流函数和防抖函数在日常的开发中还是有很多地方用到,两个函数的目的都是为了控制函数被调用的频率 正常调用 function inputChange(val) { console.log('change:', val); } let inputEl = docum...
自定义Eventbus 发布订阅模式
const EventList = {}; const on = function(eventName, callback) { if (!EventList[eventName]) { EventList[eventName] = []; } EventList[eventName].push(callback); ...
js tree 获取树节点深度
function getTreeDeep(data) { let arr = []; arr.push(data); let depth = 0; while (arr.length > 0) { let temp = []; for (let i = 0; i < arr...
js 面向对象编程之多继承
单继承 var extend = function(target, source) { // 遍历源对象中的属性 for (var property in source) { // 将源对象中的属性复制到目标对象中 target[property] = source[...
js 面向对象编程之继承
私有属性与私有方法,特权方法,对象公有属性和对象共有方法,构造器,类静态公有属性,类静态公有方法 var Book = function(id, name, price) { // 私有属性 var num = 1; // 私有方法...
vue-cli 之优化热刷新
babel-plugin-dynamic-import-node .babelrc { "plugins": ["dynamic-import-node"] } babel.config.js module.exports = { presets: [ '@vue/cli-plugin-babel/preset' ], ...