[ES6] Object.assign (with defaults value object)
ES6 with object value assign
2023-09-14 08:59:20 时间
function spinner(target, options = {}){ let defaults = { message: "Please wait", spinningSpeed: 5, cssClass: ".is-spinning" }; let settings = Object.assign( {}, defaults, options ); if(settings.spinningSpeed !== defaults.spinningSpeed){ settings.cssClass = _addSpeedClass(target); } _renderSpinner(target, settings); }
- Best pratices to write defaults as an objects, much clean and reuseable.
- Write an empty object {} to the object.assign is recommened, it avoid defaults been mutated.
- in if block, you see we might still use default value, so it is important to keep the origin defautls value.
Example2:
function spinner(target, options = {}) { let defaults = { message: "Please wait", spinningSpeed: 5, cssClass: ".is-spinning" }; let settings = Object.assign({} , defaults , options); console.log(`Message: ${settings.message}`); console.log(`spinningSpeed: ${settings.spinningSpeed}`); console.log(`cssClass: ${settings.cssClass}`); } spinner(targetElement, { cssClass: ".is-fast-spinning", spinningSpeed: 8 });
相关文章
- JavaScript & 6小时了解ES6基本语法
- 深入理解ES6之《ES7》
- 8.Es6-扩展运算符
- [TypeScript] Using ES6 and ESNext with TypeScript
- [ES6] Set && WeakSet
- [ES6] 04. The let keyword -- 2 Fiald case
- [ES2017] Iterate over properties of an object with ES2017 Object.entries()
- [Node] Convert CommonJS Requires to ES6 Imports
- [ES6] Use ES6 Proxies
- [Node.js] Using ES6 and beyond with Node.js
- [ES6] Objects vs Maps
- [AngularJS + Webpack] ES6 with BabelJS
- [ES6] ES6 Modules (ES2015) - Import and Export
- ES6学习之路9----Map数据结构
- 关于ES6的模块化
- Atitit js版本es5 es6新特性
- ES6中的语法糖
- js 浏览器兼容css中webkit、Moz、O、ms...写法封装(es6语法)
- ES6(ECMAScript 6)部分语法—简化语法的使用