9.11 高三23章,虽然从来没有用过cookie和localstorage,但是9.12有人讨论过,书只能都介绍给你,至于用哪个,还要自己判断
9.12 js面试题 http://blog.sina.com.cn/s/blog_a04a2e0301016jn8.html
9.13~9.16 遇到匿名函数,call,什么的问题,根据这个执行的函数,each写出来,第二个参数我就是没有想起来怎么写,因为从来就没有这样用过,下面的each有两个,可以直接调用,也可以用call。
function each(args0,args1){ for(i in args0){ args1.call(this,i,args0[i]); } } function each(args0,args1){ for(i in args0){ args1(i,args0[i]); } } each(['fdasfdsa',5],function(index,value){console.log(index+","+value)});
9.16 [] {} 都不能 == 或者 ===
var a = {} ,b = {}
a ==b //false
9.17 群里人问的
var foo=1; function Foo() { alert(foo); //undifined 因为在下面又重新定义了foo,无论在作用域中哪里定义变量,在赋值之前就算是undifined了,跟全局的 foo木有关系,感谢群里的小伙伴 var foo=2; alert(this.foo); this.foo=3; } var m1=Foo(); var m2=new Foo(); console.log(m1);
1.3,4次怎么执行的啊
2.如果想要var m1 = Foo()产生的m1和前面的m2完全一致,又该如何改造Foo函数?
1.
//new 表达式之后
//返回(return)一个引用对象(数组,对象,函数等),都将覆盖new创建的匿名对象
//如果返回(return)一个原始类型(无 return 时其实为 return 原始类型 undefined),那么就返回 new 创建的匿名对象。
/*new 的过程
(1) 创建一个新对象;
(2) 将构造函数的作用域赋给新对象(因此this 就指向了这个新对象);
(3) 执行构造函数中的代码(为这个新对象添加属性);
(4) 返回新对象。*/
2. 想要让this.foo 为undefined,首先因为全局函数中的this在执行的时候指向了window,所以this.foo = 1
所以需要改变全局函数中this的作用域,我想到的:
var foo=1; var getFoo = function(){ alert(this.foo); } var Foo = function () { alert("a " + foo); var foo=2; getFoo.call(Foo); //alert("b " + this.foo); this.foo=3; } m1 = Foo() var m2=new Foo(); console.log(m1);