日期:2014-05-16  浏览次数:20352 次

jquery代码的几个疑问
1.   if(typeof   window.jQuery   ==   "undefined ")   {
            window.undefined   =   window.undefined;  

这句是起什么作用?

2.   if   (   !window.XMLHttpRequest   )
XMLHttpRequest   =   function(){
return   new   ActiveXObject( "Microsoft.XMLHTTP ");
};
      var   xml   =   new   XMLHttpRequest();
XMLHttpRequest这里应该是一个函数
var   xml   =   XMLHttpRequest()就可以,   new   一下也能得到结果.
两者有什么区别?



------解决方案--------------------
四星的问题. 关注. 有压力.
------解决方案--------------------
关注
------解决方案--------------------
这两个问题是很怪,感觉第二个问题,或许是为了以后扩展用的吧,不过写成函数和函数对象定义两种方法确实是有些区别的,比如下面的例子
<script language=javascript>
function 天外水火()
{
alert( "学习 ")
}
var 天外水火TEMP = 天外水火;
/*
function 天外水火(){
天外水火TEMP();
alert( "再学习 ");
}
*/
天外水火 = function(){
天外水火TEMP();
alert( "再学习 ");
}
天外水火()
</script>
------解决方案--------------------
四星上将?
------解决方案--------------------
我上面的帖子有些跑题,怪我,不过也许可以从里面得到一些启示。
这两种是不一样的呀,估计new f()返回的是function对象,并非马上执行,而是直接调用则执行了,可以看看下面的
<script language=javascript>
var f = function(){
this.c = 123;
return this;
}
alert(f().constructor)
alert(new f().constructor)
alert(f()===new f())
</script>
------解决方案--------------------
靠,我的思路又错了
------解决方案--------------------
1. if(typeof window.jQuery == "undefined ") {
window.undefined = window.undefined;

这句是起什么作用?
------------------------------------------
window.undefined=window.undefined;
是为window声明一个undefined的属性

当访问windows.undefined的时候window对象找不到以 "undefined "命名的属性或者全局变量
系统会返回一个 undefined数据类型的值,这个访问是安全的,你可以试一下
alert(window.a)会显示undefined,
这样也就间接的给window对象声明了一个名为undefined的属性
以后就可以使用window.undefined这个属性了

有的浏览器没有undefined这个属性,但是都对于一个没有声明的对象,typeof这个对象返回的都是字符串 "undefined "

这样做的目的只是为了给window对象增加undefined这个属性,以后可以直接使用
if(a==undefined)判断,而不用再if(typeof a == "undefined ")判断
------解决方案--------------------
整理了下思路,我这边现在的进展只是知道这两种是有区别的
<script language=javascript>
var f = function(){
alert( "asdasd ")
for( var i in this)
{
document.write(i+ " <br> ")
}
}
//alert(f())
alert(new f().constructor)
</script>

------解决方案--------------------
第二个问题很显然
var xml = XMLHttpRequest();
xml得到的是 ActiveXObject实例

var xml = new XMLHttpRequest();
xml得到的是 XMLHttpRequest实例

根据个人需要来获取不同的对象就是了

个人愚见,不对之足请指正
------解决方案--------------------
把XMLHttpRequest声明为一个类可以扩展其他属性或方法
可能这就是作者的用意
------解决方案--------------------
真的看不出这样有什么好处, 或者作者是为了凸出oop的应用
------解决方案--------------------