28 进阶:jQuery初探

课堂笔记

  • 在判断相等与否时,应该只用“===”或“!==”而不用“==”或“!=”;在“===”的情况下,只有复杂对象数据类型与NaN与自身不等,其他都相等
  • 优化的小tip:代码相似的部分存在优化的可能
  • 命名空间即范围(对象),将函数添加到这个对象中,即给函数一个命名空间,用于区分同名函数,避免覆盖全局变量,便于命名。
  • 怎么做到将API作为变量的方法,使得调用形式变得简单:向该变量的公有属性添加该方法,缺点是会造成原型臃肿和复杂。
  • 更好的设计方法是生成一个 构造函数,该构造函数返回一个对象,将你的API放入该对象,这是一种无侵入式方法

造两个简单版的jQuery函数

window.jQuery = function (selector) {
    let nodes = {}
    let temp = document.querySelectorAll(selector);
    for (let i = 0; i < temp.length; i++) {
        nodes[i] = temp[i]
    } //生成中间变量temp是为了得到一个纯净的伪数组,querySelectorAll()生成的是一个不是我们所希望的,有多余原型的伪数组;
    nodes.length = temp.length
    nodes.addClass = function (className) {
        for (let i = 0; i < this.length; i++) {
            this[i].classList.add(className)
        }
        return this
    }
    nodes.setText = function (text) {
        for (let i = 0; i < this.length; i++) {
            this[i].textContent = text
        }
        return this
    }
    return nodes;
}
window.$ = jQuery

var $div = $('div')
$div.addClass('red') // 可将所有 div 的 class 添加一个 red
$div.setText('hi') // 可将所有 div 的 textContent 变为 hi
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,127评论 8 265
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,628评论 9 118
  • 穿越无穷的山 涉过无尽的水 我来到你的城市 走着你走过的路 我们并肩走在仲春夜幕下的操场上 细数着路灯穿过榕树叶缕...
    正在读着开心阅读 105评论 0 1
  • 柔软的空气变得枯涩起来,树叶纷纷落下,一个人走在回家的大道上,只有慵懒的阳光最能安慰我这思归、念家的心情。 记忆里...
    粲月阅读 256评论 0 1
  • 1 今夜,我出差异地。 而3字开头的生日,深情款款,向我走来。 一个人坐在电脑前发呆。想起曾经并非一个人时,也并没...
    袁筱鱼阅读 1,247评论 25 27

友情链接更多精彩内容