• jquery是如何架构的.


    心里一直有个疑问.

    jquery是如何做到一个jQuery即可以当方法用比如$();又可以当对象用$.extend();

    现在总结一下吧

    function method(){}
    var m=new method();
    m.version="123";
    console.log(m.version)   // 打印出123

    这段代码表示申明一个对象后,还可以继续为该对象添加属性或方法.

    继续往下看:

    var m=function(){};
    m.version="123";

    这个地方仍然可以打印出123;

    可是这个地方并没有申明对象,只不过是定义了一个变量方法名而已.

    核心一:其实变量方法名也是一个对象

    比如上面的代码本质上是这样的

    var m=new Function();
    m.version="123";

    这个就是jQuery为什么可以直接作为对象使用的原理.

    接着看为什么jQuery可以直接做方法用.

    核心二:如果构造函数有返回值,运算符new所创建的对象会被丢弃,返回值作为new表达式的值.

    function Method(name,age){
        var obj={
            name:name,
            age:age
        }; 
      this.name="我来自本身";
    return obj; } var objM=new Method("思思博士",26); console.log(objM);//打印出obj对象,而没有打印"我来自本身"

    有了上面的两个核心理论.就可以构建jQuery了.

    (function(window,undefined){
        var jQuery=(function(){
        //核心理论二
    var jQuery=function(name,age){ return new jQuery.prototype.init(name,age); }; jQuery.prototype={ init:function(name,age){ return [name,age]; } }; jQuery.prototype.init.prototype=jQuery.prototype;
        //核心理论一. jQuery.version
    ="1.7.2"; return jQuery; })(); window.$=window.jQuery=jQuery; })(window);

    console.log(jQuery.version);
    console.log(jQuery("思思博士",25))

    上面的代码模仿的就是jQuery即做方法用,又当对象用的基本理论.

  • 相关阅读:
    驱动下的异常处理
    头文件 .h 与源文件 .ccp 的区别
    驱动程序进阶篇
    驱动中链表的使用
    内存操作相关内核 API 的使用
    链表的概念、建立、删除与插入
    编写简单的 NT 式驱动程序的加载与卸载工具
    驱动程序入门篇
    c++ 指针的简单用法
    CTL_CODE 宏 详解
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/5236997.html
Copyright © 2020-2023  润新知