net.ContentLoader.prototype = {
loadXMLDoc: function(url){
if (window.XMLHttpRequest){
this.req = new XMLHttpRequest();
} else if (window.ActiveXObject){
this.req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.req){
try{
var loader = this; //this指什么?loadXMLDoc么?
this.req.onreadystatechange = function(){
loader.onReadyState.call(loader);//这句话是什么意思?
}
this.req.open('GET', url, true);
this.req.send(null);
}catch (err){
this.onerror.call(this);//还有这句话,是什么意思?
}
}
}
}
解决方案 »
- 在指定位置显示层,当窗口大小变化时,层的位置就偏移了,有什么办法解决该问题?
- 表单提交
- 传值的问题
- |zyciis| 如何监控一个checkbox的checked更改用onpropertychange的话在firefox中无效,谢谢 有代码
- 提问!!
- 如何左右拖动图片
- 我想问个关于javascript 的问题,求各位大虾了
- 如何使文本框输入为红色的字?
- 怎麼用css 設置 td 的 align valign 屬性,要設置幾種,分不同的需要引用,不能用 td { }格式!! 謝謝!!!
- 怎样用JS判断一个上传文件的名字是不是中文和它的类型
- js window.open() 弹出页面 为什么我在IE能用 在遨游浏览器下就不好使了那 有时候能弹出页面 有时候不能
- 正则表达式请兄弟们指点,输入框中只能输入字母与英文逗号……
2、call来调用方法。method.call(object)的意思是object来调用method方法
3、同2关于call 参考http://www.w3school.com.cn/js/pro_js_inheritance_implementing.asp
调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]])参数
thisObj可选项。将被用作当前对象的对象。arg1, arg2, , argN可选项。将被传递方法参数序列。说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
两处的this都是指net.ContentLoader.prototype,或者说是new出来的net.ContentLoader。
例如:
function sayColor(sPrefix,sSuffix){
alert(sPrefix + this.color + sSuffix);
}var o = new Object;
o.color = "red";
sayColor.call(o,"The color is ", " not blue");
这里call()方法中的第一个参数o赋值给sayColor中的this,第二个,第三个参数是字符串,最后打印信息。利用call()方法修改之前的继承方法,修改后如下:
function ClassA(sColor){
this.color = sColor;
this.sayColor = function(){
alert(this.color);
}
}function ClassB(sColor,sName){
//this.newMethod = ClassA;
//this.newMethod(sColor);
//delete this.newMethod;
// 这里的this等于ClassB对象
// 所以下面这句话就等于ClassB赋值了ClassA里面的内容
ClassA.call(this,sColor); this.name = sName;
this.sayName = function(){
alert(this.name);
}
}
var objA = new ClassA("red");
var objB = new ClassB("blue","Jim");
objA.sayColor(); // red
objB.sayColor(); // blue
objB.sayName(); // Jim
js中的this指向的是包含此this所在函数运行的那个对象,包含this的那个函数运行的环境不同,this的指向也是不同的函数.call(this),是指把当前的this的作用域当作函数的作用域来运行这个函数
this.req.onreadystatechange = function(){
loader.onReadyState.call(loader);//这句话是什么意思?
}
}catch (err){
this.onerror.call(this);//还有这句话,是什么意思1、this代表的是调用函数的对象2、调用了call ,同时没有用this,因为this发生了变化,许多回调函数中不能用this3,call的调用,是为实现类继承