js对象深拷贝和浅拷贝

数据类型

javascript中对象为引用类型,其值存储在堆内存中, 深拷贝就是将重新开辟一块新的堆内存来赋值

浅拷贝

1
2
3
4
var obj={name:'张三'};
var newObj=obj
newObj.name='李四'
console.log(obj)//李四 newObj改变,obj也跟着改变 。因为二者指向同一个地址

查看更多

javascript中闭包的深入理解

作为面试必问的问题,对闭包必须进行深入研究。‘深入’二字请划重点。
最好是要理解到一定程度,什么程度呢?
就是你发现你的面试官原来对闭包的理解并不透彻,然后你为了给面试官个面子,不得不也装作一知半解的样子,这样你就牛逼了。
闭包学起来虽然可能对你很枯燥,但是一定要坚持,不能浮皮潦草。你要知道一个道理:水滴石穿。水能穿破坚硬的石头,何况是个闭包,前提是你还不比水弱。

查看更多

href="xxx(this);"和onclick="xxx(this);

对于href=”Javascript:xxx(this);”和onclick=”javascript:xxx(this);”之前一直以为这两种写法是等同的,今天后台一个同事在项目遇到这个问题中问我时才发现前者的this根本拿不到触发事件的A标签,而后者可以拿到。

问题由来:

她原来的写法是这样的:

1
2
3
4
5
6
7
8
9
10
11
jsp页面:
<table>
<td><a href="javascript:delete_cur(this)">删除</a></td>
</table>

javascript:
function delete_cur(arg){
console.log(arg) # window
$(arg).parent().parent().remove()
#....
}

查看更多