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; }