首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jQuery函数不会全局读取属性

是因为jQuery使用了封闭的作用域,它将自己的属性和方法限定在自己的命名空间内,避免了与其他JavaScript库或代码的冲突。

具体来说,jQuery使用了立即执行函数表达式(Immediately Invoked Function Expression,IIFE)来创建一个闭包,将自己的代码包裹起来。这样做的好处是,jQuery内部的变量和函数只在自己的作用域内有效,不会污染全局命名空间。

在jQuery中,可以通过$.fn扩展函数到jQuery对象的原型上,这样所有的jQuery对象都可以使用这个扩展函数。但是这个扩展函数只在jQuery对象上有效,不会影响到其他全局对象。

举个例子,假设我们有一个全局变量name,然后在jQuery函数内部定义一个同名的变量name。在jQuery函数内部,访问name时,会优先使用内部的变量,而不是全局变量。这样就避免了全局变量的污染和冲突。

总结起来,jQuery函数不会全局读取属性是因为它使用了封闭的作用域,将自己的属性和方法限定在自己的命名空间内,避免了与其他JavaScript库或代码的冲突。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(MSS):https://cloud.tencent.com/product/mss
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

jquery 操作HTML data全局属性缓存的坑

data-* 全局属性 是一类被称为自定义数据属性属性,它赋予我们在所有 HTML 元素上嵌入自定义数据属性的能力,并可以通过脚本(一般指JavaScript) 与 HTML 之间进行专有数据的交换。...简单的说就是html元素可以通过data-*属性存一些数据,类似于一个map,如果我们想在html的元素上额外的存一些东西是非常方便的。...一:读取是没问题的 比如我们读取div中data-num的数据: dataSet image.png image.png 分别用...jquery和js的方法读取,结果都是1。...二:修改就有坑了 但是修改的data-num的时候就有意思了: image.png image.png jquery设置data-num中的值为2 jquery读取值的值是2 js读取值的值是1,奇怪,

81020

jQuery中常用的函数属性详细解析

再也不会被触发 foo hover( over, out ) over,out都是方法, 当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。..."); }); jQuery.ajaxSetup( options ) 为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。 设置默认的全局AJAX请求选项。...这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。...返回的对象有2个属性, top和left,属性值为整数。这个函数只能用于可见元素。...JQuery Utilities 方法说明 jQuery.browser .msie 表示ie jQuery.browser.version 读取用户浏览器的版本信息 jQuery.boxModel 检测用户浏览器针对当前页的显示是否基于

2.5K10

后端开发必备JQuery常用知识点jQuery.each(object, )1 筛选2 属性3 文档处理4 回调函数

回调函数拥有两个参数 object:需要遍历的对象或数组 callback:每个成员/元素执行的回调函数。...val() 返回第一个匹配元素的 value 属性的值。 ? 2 属性 attr(name|properties|key,value|fn) 设置或返回被选元素的属性值。 ? ?...参数name 描述: 返回文档中所有图像的src属性值。 jQuery 代码: $("img").attr("src"); 参数properties 描述: 为所有图像设置src和alt属性。...jQuery 代码: $("img").attr({ src: "test.jpg", alt: "Test Image" }); 参数key,value 描述: 为所有图像设置src属性。...jQuery 代码: $("img").attr("src","test.jpg"); 参数key,回调函数 描述: 把src属性的值设置为title属性的值。

71230

【前端】Web前端学习笔记【2】

相关博客: Web前端学习笔记【1】 ---- 1. this在 JavaScript 中主要有以下五种使用场景 ---- 在全局函数调用中,this 绑定全局对象,浏览器环境全局对象为 window...在对象a的方法b内部的函数c中,this 也绑定全局对象,应该绑定到方法b对应的对象a上。这是 JavaScript的缺陷,解决方法:用that捕捉。 在构造函数中,this 绑定到新创建的对象。...闭包 ---- 闭包的原理: ——《JavaScript高级程序设计》(第3版)7.5 闭包的特性: 函数嵌套函数 函数内部可以引用外部的参数和变量 参数和变量不会被垃圾回收机制回收 使用闭包的好处:...jQuery拥有特有的CSS-Like选择器,链式写法,封装的各类animate函数,封装了的异步加载。 jQuery封装了AJAX操作。 jQuery的缺点: jQuery比原生JS执行效率慢。...,for...of循环读取键值。

16720

js的深拷贝和浅拷贝

这样,当查询引用类型的变量时,就先从栈中读取堆内存地址,然后再根据该地址取出对应的值。...浅拷贝 浅拷贝只会将对象的各个属性进行依次复制,并不会进行递归复制,也就是说只会赋值目标对象的第一层属性。...如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象;否则的话,副本会与原对象共享结构。 未定义的属性不会被复制,然而从对象的原型继承的属性将会被复制。...,这时该方法会抛出一个 TypeError 异常,拷贝过程中断,已经拷贝成功的属性不会受到影响,还未拷贝的属性不会再被拷贝; 该方法会跳过那些值为 null 或 undefined 的源对象; 利用...,但不会忽略值为 null 的属性

1.4K20

JavaScript设计模式(2)——Module(模块)模式

to reset: 1 testModule.resetCounter(); // 输出:undefined console.log(testModule.counter); 在这里,代码外部无法直接读取...,然后调用并立即存储返回值,这样有很多优点,包括: 只有该模块才有使用私有函数的自由,因为这些函数不会暴露在页面的其他部分,暴露出来只有输出的API 鉴于函数往往函数已经声明并命名,在试图找到函数抛出的异常时...模式变化 3.1 引入混入 下面的例子演示了全局变量(jQuery,Underscore)如何作为参数传递给模块的匿名函数。我们引入它们,并给它们取一个本地别名。...和Uderscore })(jQuery, _); myModule.publicMethod(); 3.2 引出 下面的例子声明了一个全局变量,而不需要实现它们,并可以同样地作为全局变量引入到模块中...// 全局模块 var myModule = (function(){ // 模块对象 var module = {}, // 私有属性 var privateVariable

72850

前端面试官问闭包,怎样回答脱颖而出

闭包就是能够读取其他函数内部变量的函数 创建闭包的最常见的方式就是在一个函数内创建另一个函数,创建的函数可以访问到当前函数的局部变量。...原因:Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 但是在函数外部自然无法读取函数内的局部变量。出于种种原因,我们有时候需要得到函数内的局部变量。...优点:简单好用; 缺点:闭包使用不当可能造成内存泄露; 因为闭包中引用到的包裹函数中定义的变量永远不会被释放,所以我们应该在必要的时候,及时释放这个闭包函数。 7.内存泄露是什么?...1,在退出函数之前,将不使用的局部变量赋值为null; 2,避免变量的循环赋值和引用。 3,利用Jquery释放自身指定的所有事件处理程序。...所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值

17810

【JS】382- JavaScript 模块化方案总结

这类历史渊源和发展概述在本文将不会提及,因此感兴趣可以自行搜索 JavaScript 发展史进行了解。 直接进入正题,我们来看看常见的模块化方案都有哪些以及他们都有哪些内容。 1....以指向 module.exports,这相当于在每个模块最开始,写有这么一行代码: var exports = module.exports; CommonJS 模块的特点: 所有代码都运行在模块作用域,不会污染全局作用域...模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。 模块加载的顺序,按照其在代码中出现的顺序。 2....所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。除了和 CommonJS 同步加载方式不同之外,AMD 在模块的定义与引用上也有所不同。 define(id?...如果为函数,它应该只被执行一次。

81130

再谈模块化

当所有依赖的模块下载并解析完成后,调用模块的工厂函数,并传入所依赖的模块(如JQuery)。 模块的工厂函数,是与前面提到的模块模式类似的创建模块的过程。...CMD提供module变量,其具有exports属性,通过exports可以很容易扩展额外属性。module.exports是模块的公共接口。...因为CMD基于文件,在服务端只需要读取文件系统,加载速度更快。而在客户端必须从远程服务器下载文件,且是同步下载文件,故会更慢下载,容易造成阻塞。...同时,不需要使用立即执行函数包装变量。而是使用module.exports 在模块中定义的变量都是安全地包含在当前模块中,不会泄露到全局作用域。...只需要定义module.exports属性。剩下的模块代码与标准的Javascript无大差异。同时,只需要使用require函数引用模块。 CMD是NodeJS默认的模块格式。

45220

JavaScript的变量

('函数外修改const定义b:' + b);//无法输出 var定义的变量可以修改,如果不初始化会输出undefined,不会报错。...由于 JavaScript 在预编译期已经对变量声明语句进行了预解析,所以第一行代码读取变量值时不会抛出异常,而是返回未初始化的值 undefined。...JavaScript 变量可以分为全局变量和局部变量: 全局变量:变量在整个页面脚本中都是可见的,可以被自由访问。 局部变量:变量仅能在声明的函数内部可见,函数外是不允许访问的。...而在执行初期,局部变量 a 未赋值,所以在函数内第 1 行代码读取局部变量 a 的值也就是 undefined 了。当执行到函数第 2 行代码时,为局部变量赋值 2,所以在第 3 行中就显示为 2。...(jQuery); //显示函数代码:function(){} 因此,在函数体内使用全局变量是一种危险的行为。

14610

JS模块化编程以及AMD、CMD规范、Webpack

这对服务器端不是一个问题,因为所有的模块都存放在本地硬盘,可以同步加载完成,等待时间就是硬盘的读取时间。...所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。...形式,就是下面这样: require(['math'], function (math) { math.add(2, 3); }); math.add()与math模块加载不是同步的,浏览器不会发生假死...require 加载依赖模块,并执行加载完后的回调函数(加载模块后会执行模块里的代码,返回值可作为回调函数的参数提供调用);它的参数必须是一个数组。...jquery没有加载成功后,会加载本地js目录下的jquery 在使用requirejs时,加载模块时不用写.js后缀的,当然也是不能写后缀 上面例子中的callback函数中发现有$参数,这个就是依赖的

2.2K10

前端开发,关键技术点杂烩

本质就是清除浏览器默认样式,并且进行全局样式定义,Reset 文件要在项目初期定好,这样才不会产生后期的回归测试问题。...16、原型链 (内容太多,请自行 Google) 17、函数表达式和函数声明的区别 函数表达式只有函数定义的提升,函数声明则可以将函数定义和声明同时提升;函数表达式可以放在任何地方,函数声明则只能放到全局环境中...可以简单理解为“函数里的函数”,两个常见作用:一可以读取函数内部的变量、二让这些变量的值始终保持在内存中。...父函数定义的变量在子函数的作用域链中,子函数没有被销毁,其作用域链中所有变量和函数就会被维护,不会被销毁。...,声明函数全局作用域,此时作用域链只有一个环境对象;运行函数时作用域链顶端加入了函数内的环境对象,运行完毕时顶端环境对象被销毁,以此类推。

1.1K30

前端关键技术点杂烩,这些你必须知道

本质就是清除浏览器默认样式,并且进行全局样式定义,Reset 文件要在项目初期定好,这样才不会产生后期的回归测试问题。...16、原型链 (内容太多,请自行 Google) 17、函数表达式和函数声明的区别 函数表达式只有函数定义的提升,函数声明则可以将函数定义和声明同时提升;函数表达式可以放在任何地方,函数声明则只能放到全局环境中...可以简单理解为“函数里的函数”,两个常见作用:一可以读取函数内部的变量、二让这些变量的值始终保持在内存中。...父函数定义的变量在子函数的作用域链中,子函数没有被销毁,其作用域链中所有变量和函数就会被维护,不会被销毁。...,声明函数全局作用域,此时作用域链只有一个环境对象;运行函数时作用域链顶端加入了函数内的环境对象,运行完毕时顶端环境对象被销毁,以此类推。

1.5K20

闭包概念及面试题

②javascript语言的特殊处就是函数内部可以读取外部作用域中的变量。 ③我们有时候需要得到函数内的局部变量,但是在正常情况下,这是不能读取到的,这时候就需要用到闭包。...在javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。闭包是指有权访问另一个函数作用域中的变量的函数。...直接更改,达到所谓隐藏数据的效果;jquery就利用了这一特性,必须调用$.ajax()才能访问内部属性方法。...封装功能时(需要使用私有的属性和方法), 函数防抖、函数节流 单例模式 三.闭包的优点: (一)变量长期驻扎在内存中 (二)另一个就是可以重复使用变量,并且不会造成变量污染 ①全局变量可以重复使用...不同的地方定义了相同的全局变量,这样就会产生混乱。” ②局部变量仅在局部作用域内有效,不可以重复使用,不会造成变量污染。 ③闭包结合了全局变量和局部变量的优点。

40630

jQuery源码研究:模块规范兼容

global和factory两个形参,分别指全局变量和一个工厂函数。...在这个匿名函数函数体中对当前所处环境进行判断: 如果所处为支持CommonJS的环境中时,如有window属性和document属性存在,则通过module.exports暴露出工厂函数并可取得jQuery...对象以供使用;否则仅暴露出给定抛出错误的工厂函数,比如Nodejs环境 非第一种情况时,则执行匿名函数体中的factory( global ),并在工厂函数中进行AMD的判断、命名冲突检测和全局暴露等操作...目前,通过各种工具库,其实已经做到了这一点;将来浏览器的新 API 就能用模块格式提供,不再必须做成全局变量或者navigator对象的属性;不再需要对象作为命名空间(比如Math对象),未来这些功能可以通过模块提供...好,以上就是现有的JS模块加载回顾,总结就是ES6模块是现在和未来,在Vue、React等框架配合webpack进行项目构建时,可成熟使用,但在jquery等较老库中时,尚未可用,以后也基本不会多支持。

1.1K30
领券