首页 > 代码库 > javascript知识点
javascript知识点
1:关于this的作用域,昨天看到一道这样的题;
var x=10;
var foo={
x:20,
obj:function(){
var x=30;
return this.x;
}
}
alert(foo.obj)();20 相当于foo.obj()
alert(foo.obj=foo.obj)();赋值,作用域到了window
alert(foo.obj,foo.obj)();作用域window
上面三个结果为啥跟30一点关系都没有啊,后来参考http://www.cnblogs.com/wangfupeng1988/p/3988422.html
才明白对象字面量创建函数的方式中obj不仅作为一个对象的一个属性,而且的确是作为对象的一个属性被调用。结果this就是foo对象,
第二个表达式相当于var fn=foo.obj;fn();这样作用域就到window了。
这里有别于构造函数方式创建对象,可参考http://www.cnblogs.com/zoujking/p/4158803.html 中调用构造函数的三种方式;
2:不经过第三个变量交换a,b值
var a=4,b=8
a=[b,b=a][0]; a=8//变为数组的形式
b=[b,b=a][1];b=4
参考:http://www.cnblogs.com/wangfupeng1988/p/4001284.html
http://www.cnblogs.com/ctriphire/p/4157980.html
javascript知识点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。