1 //填一个表达式,使控制台可以打印出 100 150 2 function obj(){ 3 (_______???_____) 4 } 5 6 var a = new Object; 7 var b = new Object; 8 9 a.value = '100'; 10 b.value = '150'; 11 12 a.obj = obj; 13 b.obj = obj; 14 15 console.log(a.obj()); //100 16 console.log(b.obj()); //150
代码解释
1 function obj(){ 2 return this.value; 3 } 4 5 //创建两个window对象 6 var a = new Object; 7 var b = new Object; 8 //给两个对象分别添加了value属性 9 a.value = '100'; 10 b.value = '150'; 11 //给两个对象分别添加了obj这个方法,并且赋值了obj这个函数,obj函数的返回值是this.value 12 //那么a.obj = this.value指向自己的value属性 13 //现在的a,b分别有两个成员,obj()这个函数和value 14 a.obj = obj; 15 b.obj = obj; 16 //方法调用函数模式的rhis指向调用函数的对象 17 //a.obj() == this.value 18 console.log(a.obj()); 19 console.log(b.obj()); 20 console.log(a.value);// a.obj() == a.value
2.语句var arr = [a,b,c,d];执行后,数组中每一项都是整数,下面能得到最大值的表达式是
A:Math.max(arr);
B:Math.max(arr[0],arr[1],arr[2],arr[3]);
C:Math.max.call(Math,arr[0],arr[1],arr[2],arr[3]);
D:Math.max.apply(Math,arr);
答案:BCD
3.如何避免JS多人开发函数重名问题?
A.根据不同开发人员实现的功能,在函数前加前缀
B.每个开发人员都把自己的函数封装到对象中,然后调用发时候即时函数名相同,但是因为是对象.函数名来调用,所以减少了重名的可能性
.........
持续更新...