首页 > 关于jquery实现$与$()的问题

关于jquery实现$与$()的问题

jq的$有$('选择器')与$.xxx这样的写法,我现在只实现了$()链式调用,但是$.ajax这种如果实现?

看来我写得长大家理解都有问题,这次短点.


1)$是jQuery对象的简写标识符
2) $(),调用了jQuery的构造函数
3)$.ajax调用了jQuery对象的一个函数

例如简单的示例

var mQuery=(function(){
    function OBJ(selector){
        if(!(this instanceof OBJ)){
            return new OBJ(selector);
        }
        this.selector= selector;
    }

    OBJ.prototype.play=function(){
        console.log('play on '+this. selector);
        return this;
    };

    OBJ.myFunc=function(){
        console.log("myFunc");
    };
    return OBJ;
}());

(function($){
    $('myselector').play();
    $.myFunc();
}(mQuery));

这样重新封装一次有什么意义呢?jQuery的使用已经非常简单了,如果看jQuery源码都有困难的话,不如直接使用来的方便。


很简单的,首先,jquery的入口函数是不用new操作的,函数名是jquery,一样一来就可以在这个jquery增加继承属于方法了,值得注意的,入口函数不能new操作才行,如果new操作后这些继承就没有用了。
手机打字很累,需要例子我再复制给你


直接用不就可以了吗?移动端就用zeptojs


ajax说到底是一个xmlhttprequest对象在起作用,不过不同浏览器兼容性不好,个人认为自己封装的话,如果做不到像jq那样兼容各大浏览器,那还是使用$.ajax()吧。。。
而你说到这个$.ajax。。。实际上相当于一个这样的构造函数:

function $(select){
    return new JQ(select);
}
function JQ(){
   ....
}
JQ.prototype={
   ....
   ajax:function(....){
      ....
   },
   ....
}
【热门文章】
【热门文章】