首页 > 编程语言 > 详细

javascript知识点

时间:2014-12-14 17:04:05      阅读:232      评论:0      收藏:0      [点我收藏+]

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知识点

原文:http://www.cnblogs.com/zoujking/p/4162716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!