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的应用
------解决方案--------------------