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

发布于 2022-09-01 22:40:15 字数 92 浏览 37 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

情徒 2022-09-08 22:40:15

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));
强辩 2022-09-08 22:40:15

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

一身软味 2022-09-08 22:40:15

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

只是我以为 2022-09-08 22:40:15

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

温柔戏命师 2022-09-08 22:40:15

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

function $(select){
    return new JQ(select);
}
function JQ(){
   ....
}
JQ.prototype={
   ....
   ajax:function(....){
      ....
   },
   ....
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文