2018/06/30这段时间的随笔记忆:遇到概念模糊的js问题

1.事件委托

概念:利用冒泡原理,子元素要做的事情交给父元素做

场景:ul和li标签,当每个li标签都需要有事件触发,如果给每一个li标签添加,当遇到li标签要增加或者减少的时候。监听它的增加或者减少是一件非常麻烦的事情,所以。通过在ul上面添加事件。通过一e.target获取当前对象。注意区分e.target与e.currenttarget

2.浅拷贝与深拷贝

概念:浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象

用法:

浅拷贝

 function simpleClone(initalObj) {    

      var obj = {};    
      for ( var i in initalObj) {
        obj[i] = initalObj[i];
      }    
      return obj;
    }
或者Object.assign()

深拷贝
JSON.stringify把对象转成字符串,再用JSON.parse把字符串转成新的对象
var obj2 = JSON.parse(JSON.stringify(obj1));
使用Object.create()方法
递归
var deepCopy= function(source) { 
var result={};
for (var key in source) {
      result[key] = typeof source[key]===’object’? deepCoyp(source[key]): source[key];
   } 
   return result; 
}


猜你喜欢

转载自www.cnblogs.com/sisi2020/p/9246269.html