码迷,mamicode.com
首页 > 编程语言 > 详细

javascript知识点

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

标签:blog   http   io   ar   sp   java   on   log   bs   

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

标签:blog   http   io   ar   sp   java   on   log   bs   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!