Posted on 2011-07-29 00:41
xcp 阅读(619)
评论(0) 编辑 收藏 所属分类:
JavaScript高级程序设计(第2版)
1.高级函数
1.1 作用域安全的构造函数
>例:function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
}
var person = new Person("xcp",23,"program er");
alert(person.name);//xcp
alert(window.name);//undefined
但如果我这样生成对象呢?
var person = Person("xcp",23,"programer");
alert(window.name);/xcp
这是为什么呢?
问题出现在当没有使用new操作符来调用构造函数的情况,由于该this对象是在运行时绑定的,所以直接调用Person(),this会映射到window上
解决办法呢?
function Person(name,age,job){
if(this instanceof Person){
this.name=name;
this.age = age;
this.job = job;
}else{
return new Person(name,age,job);
}
}
1.2 函数绑定
函数绑定要创建一个函数,可以在特定中指定参数调用另外一个函数。该技巧常常和回调函数与事件处理程序一起使用,以便在见函数作为变量传递的时候保留代码执行环境。
例如:var handler ={
message :"Event handled",
handleClick:function(event){
alert(this.message);
}
}
var btn = document.getElementById("sub");
EventUtil.addHandler(btn,"click",bind(handler.handleClick,handler));
2.高级定时器
2.1 setTimeout clearTimeout
2.2 setIntelval clearInterval
3.拖放
3.1 常用写法
EventUtil.addHander(document,"mousemove",function(event){
var myDiv = document.getElementById("myDiv");
myDiv.style.left = event.clientX+"px";
myDiv..style.top = event.clientY+"px";
})
名称: ♪4C.ESL | .↗Evon
口号: 遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail: 联系我