[ES6] Object.assign (with defaults value object)

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
});
时间: 2024-11-05 05:27:16

[ES6] Object.assign (with defaults value object)的相关文章

es6 javascript对象方法Object.assign()

es6 javascript对象方法Object.assign() 2016年12月01日 16:42:34 阅读数:38583 1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). [javascript] view plain copy var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3 }; Object.assig

ES6对象方法Object.assign()

1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). [javascript] view plain copy var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3} Object.ass

ES6中Object.assign() 方法

1. 对象合并Object.assign 方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象上.如下代码演示: var target = {a: 0}; var source1 = {b: 1}; var source2 = {c: 2}; Object.assign(target, source1, source2); console.log(target); // 输出 {a: 0, b: 1, c: 2} 1-1 如果目标对象与源对象有同名属性,或多个源对象有同名

ES6的Object.assign()基本用法

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). 例如: const target = {a:1}, const source1 = {b:2} const source2 = {c:3}; Object.assign(target, source1,source2); target   // {a:1,b:2,c:3} Object.assign  方法的第一个参数是目标对象,后面的参数都是源对象. 注意:如果目标对象与源

浅谈ES6的Object.assign()浅拷贝

注意: 1.Object.assign() 只是一级属性复制,比浅拷贝多深拷贝了一层而已.用的时候,还是要注意这个问题的. 2.简单实现深拷贝的方法,当然,有一定限制,如下:JSON.parse(JSON.stringify());思路就是将一个对象转成json字符串,然后又将字符串转回对象. Object.assign()方法 特点:浅拷贝.对象属性的合并 代码如下: var nObj = Object.assign({},obj,obj1); 解析:花括号叫目标对象,后面的obj.obj1是

真正掌握vuex的使用方法(二)现在有的小伙伴是不是在想,以后如果我要在这里写自己的计算属性怎么办?怎么办?咱们可以通过对象合并的方法去实现。 通过Object.assign()合并对象:

从上篇文章当中相信大家已经对vuex有了一些大概了解了,接下来咱们结合实例来继续敲代码吧!切记一定要动手实操练习一遍! 接下来咱们来完成一个超级简单的投票功能!要求很简单,点击"投票"按钮,相应的票数会发生加1的变化,另外总票数为所有票数之和,如图所示: 1.首先通过vue-cli生成一个名字叫做demo的项目 vue init webpack demo 2.项目搭建完成以后,安装vuex npm install vuex --save 3.在src目录下创建vuex文件夹,然后在该文

一个 Object.assign 的误解

mozilla中对 Object.assign 的解释如下地址: mozilla 其中有说到 注意, Object.assign 会跳过那些值为 null 或 undefined 的源对象. 一直以为是对象中如果是null 或者 undefined ,那么会不进行覆盖, 但是测试结果却是覆盖. 很是疑惑. 经询问以及查找, 发现是如下的例子,才不会进行覆盖 Object.assign({obj1: "objvalue"}, null); Object.assign({obj1: &qu

250 浅拷贝Object.assign(target, ...sources),深拷贝

浅拷贝:Object.assign(target, ...sources). **Object.assign()** :方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它将返回目标对象. <!-- 补充:数组也可以用for ... in --> <script> var arr = ['pink', 'red', 666] for (var k in arr) { console.log(k); // 0 1 2 console.log(arr[k]); // pin

Object.assign()用法讲解

// 将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. const target = {a: 1, b: 2} const source = {b: 4, c: 5} const returnedTarget = Object.assign(target, source) // output: Object { a: 1, b: 4, c: 5 } console.log(target) // output: Object { a: 1, b: 4, c: 5 } con