美文网首页
整体架构

整体架构

作者: 我_巨可爱 | 来源:发表于2017-11-16 17:29 被阅读0次

常见构造函数创建实例和无new创建实例。原文地址

// 无new创建
function Test() {
  // 不能使用 this
  return new Object()
}
// new 有神奇的作用
function Test() {}; new Test();

jquery代码

jQuery = function (selector,context) {
  return new jQuery.prototype.init()
}
jQuery.prototype = {
  init: function () {
    this.name = 
    return this
  },
  say: function () {}
}
jQuery.prototype.init.prototype = jQuery.prototype
  1. return new 类是为了无new和隔离各个实例
  2. new作用
  • 创建对象,this指向该对象
  1. initthis无法获取jQuery上的方法,因此原型重定向

小案例分析

$().say()
  1. 由于返回的是init对象,会通过__proto__查询initprototype上有没有
  2. init原型上本来没有,由于原型成定向,它又指向jQuery上的prototype
  3. 由于jQuery上的prototype有该方法,所以调用

链式调用

  1. 方法在必要的时候返回this

插件接口

  1. 使用的是extend,因此,我们就来看看extend函数
jQuery.extend = jQuery.fn.extend = function () {
  // 初始化变量
  // 处理各种,不同参数导致的问题
  // 主要逻辑
  for () {
    // 第一层,循环各个source
    if () {
      // 如果是对象
      for () {
        // 第二层,遍历对象各个属性
        if () {
          // 如果,属性值是对象或数组,递归
        }else {
          // 如果,属性值不是对象或数组,直接赋值
        }
      }
    }
  }
  // return 改变后的目标
}

总结

  1. 整体框架,一些伪代码,然后细化

相关文章

  • 整体架构

    整体架构jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作、 从上面的写法上至少可以发现2个问题:1...

  • 整体架构

    常见构造函数创建实例和无new创建实例。原文地址 jquery代码 return new 类是为了无new和隔离各...

  • 整体架构

    待业中。。仿写一个B站安卓客户端。整体参考。https://github.com/HotBitmapGG/bili...

  • 整体架构

    1.mybatis的整体架构主要分为三层 1.接口层 2.核心处理层 3.基础支持层 2.基础支持模块 1.反射模...

  • Tomcat整体架构

    整体架构 tomcat的整体架构在server.xml配置文件中体现的整体视图如上。 server组件 Tomca...

  • bitcoinj整体架构

    看了各种各样的比特币介绍网站,虽然能知晓个大概,但也总觉得自己在听故事,想探索比特币运行更深层次的运行机理,只有一...

  • TiDB整体架构

    TiDB整体架构可参考下图 TiDB Server 负责处理SQL相关的逻辑,将SQL语句转成key,通过PD来查...

  • EOS整体架构

    EOS(Enterprise Operation System),企业操作系统,是为企业级分布式应用设计的一款区块...

  • 【MyBatis】整体架构

    SqlSession下的四大对象 Executor代表执行器,由他来调度StatementHandler、Para...

  • rocketmq整体架构

    rocketmq整体包含4个模块 1 nameServer 命名服务器,类似zk2 broker 代理服务器,存储...

网友评论

      本文标题:整体架构

      本文链接:https://www.haomeiwen.com/subject/xdnlvxtx.html