第一题:
var a = 0;
function A(){
this.a = 1;
setTimeout(function(){
this.a = 2;
try{
this.b="b";
throw '';
}
catch(e){
this.b='bb';
}
},0);
this.b="bbb";
}
var aa = new A();
setTimeout(function(){
console.log(aa.a);
console.log(window.a);
console.log(aa.b);
console.log(window.b)
},0);
1、2、bbb、bb;
考察点应该是setTimeout()的作用域是全局对象,在浏览器中,即为 window。
第二题:
不借助第三方库,请编码完成:给一个超链接元素绑定一个鼠标单击的事件。要求单击该元素后,提示用户“用户名不能为空”。(注意:请尽可能兼容给多的浏览器)
考察原生 js 事件绑定,在JavaScript高级程序设计那本书的事件章节有详细讲述。不过话说有空去看看 jQuery 那货是怎么做的肯定大有帮助。
<a id= "hyper" href="#">我是一个超链接</a>
var a = document.getElementById("hyper"),
handler =function(e){
alert("用户名不能为空");
}
if (window.addEventListener){
a.addEventListener("click",handler,false);
}
else if(window.attachEvent){
a.attachEvent("onclick",handler);
}
else{
a["onclick"]=handler;
}

2960

被折叠的 条评论
为什么被折叠?



