$(this)与this.id速度比较

本文对比了jQuery和JavaScript原生方式在为a元素绑定点击事件时的性能差异,发现原生方式在速度上明显优于jQuery方式,提供了高达20倍的性能提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jquery方式:

为a元素绑定一个处理点击事件的函数:

$('a').click(function(){

    alert($(this).attr('id'));

});

javascript原生方式:

$('a').click(function(){

    alert(this.id);

  });

总结:上面$(this)与this.id作用域所指对象皆指a元素,但速度this.id原生方式快于$(this)20倍。

 

 

 

-----------------------------------------------------------------------

 

jquery

摘要: pushStack()方法在jQuery的DOM操作中被频繁的使用, 如在parent(), find(), filter()中, 当然还有其他许多类似的方法, 它们往往需要返回一个jQuery封装过的DOM结果集.但在我们自己写jQuery代码的时候,却很少关注或使用过pushStack(). 如果我们需要写个涉及DOM遍历的插件,它就会显得尤其有用.在jQuery内部,pushStack()方法通过改变一个jQuery对象的prevObject属性来"跟踪"链式调用中前一个方法返回的DOM结果集(被jQuery封装过,也是个jQuery对象,说是"跟踪&quo 阅读全文
posted @ 2012-02-06 15:23 Andy Zhang 阅读(181) | 评论 (0) 编辑
摘要: 中午休息时,没有睡意,没事写了个jquery插件:formStorage.原理很简单,通过本地存储机制(userData或者localStorage),存储表单中元素的状态到本地. 需要时可以把所存储的状态还原到表单元素上.其中也用了json数据格式, 之前想对插件中所需的功能,从零开始写,但是觉得太冗余,没必要.就基于另外2个plugin现实.分别是:jquery.json 和 jStorage. 这两个插件本身实用小巧, api简单易用, 其中jStorage在老一点的浏览器(不支持原生JSON操作)中需要用到jquery.json或者json2formStorage对jQuery对象扩展 阅读全文
posted @ 2012-01-18 21:57 Andy Zhang 阅读(249) | 评论 (0) 编辑
摘要: jquery AjaxQueue的简单实现和改进,用于对请求进行一定的控制 阅读全文
posted @ 2011-10-06 11:40 Andy Zhang 阅读(368) | 评论 (0) 编辑
摘要: 按照jquery plugin最佳实践,做了一个progressbar插件 阅读全文
posted @ 2011-09-26 15:39 Andy Zhang 阅读(871) | 评论 (0) 编辑
摘要: 一个简单的基于jquery的ajaxQueue实现 阅读全文
posted @ 2011-09-15 13:03 Andy Zhang 阅读(244) | 评论 (0) 编辑
摘要: 昨天看到一个园友的blog中有个页面下滚后出现用于"回到页面顶部"按钮的效果, 感觉挺不错的, 所以自己也写了一个, 用jQuery写是再简单不过了. 下面就直接给出代码了 .scroll-up { background: #dcdcdc url('up.png') no-repeat center center; width:48px !important; /*for ff and other standard browser*/ height:48px !important; _width: 58px; /*for IE6 nonstandard bo 阅读全文
posted @ 2011-06-27 23:26 Andy Zhang 阅读(361) | 评论 (0) 编辑
摘要: 任务需要,就写了一个jQuery新闻滚动插件jquery.roller.js,功能相对比较简单,可能往后会加入ajax一段时间轮询 动态加载的功能.下面直接给出源代码,如果需要可以直接下载 ,我在源码里给出了注释,有什么不足之处后或者可以改进的地方, 希望能够大家留言探讨...效果图(比较朴素):;(function($) { $.fn.roller = function(options) { var opts = $.extend({}, $.fn.roller.defaults, options), // 通过循环队列来管理滚动信息 itemQueue ... 阅读全文
posted @ 2011-06-24 20:59 Andy Zhang 阅读(827) | 评论 (3) 编辑
摘要: 有段时间没写什么了, 打算把jquery中的比较常用的数组处理方法汇总一下$.each(array, [callback])遍历,很常用 var arr = ['javascript', 'php', 'java', 'c++', 'c#', 'perl', 'vb', 'html', 'css', 'objective-c']; $.each(arr, function(key, val) { // firebug console c 阅读全文
posted @ 2011-06-20 11:27 Andy Zhang 阅读(1130) | 评论 (2) 编辑
摘要: 正好项目中有个小需求, 要求把表格指定列中内容相同的单元格进行合并,本质上涉及的就是td的rowspan属性, 数出含相同内容单元格的个数, 然后给第一个与上一行内容不同的td其rowspan属性附上正确的值即可, 为了能直观的理解, 效果如下原表格:col0col1col2col3SuZhou1111122222SuZhouCitySuZhou3333344444SuZhouCitySuZhou5555566666SuZhouCityShangHai7777788888ShangHaiCityShangHaiuuuuuhhhhhShangHaiCityShangHaigggggcccccSh 阅读全文
posted @ 2011-04-04 22:13 Andy Zhang 阅读(876) | 评论 (4) 编辑
摘要: 有段时间没写些东西了......参加工作大半年 感觉是收获不小啊 新年以致 在这里我想真心的祝福所有园友 所有有梦想的人 新的一年技术更牛X 身体棒棒 职业发展更上一层 好了 回过来讲主要内容. 在jquery cook book里看到一篇给event handler传递动态参数的文章 感觉挺实用的 跟大家分享下 直接拿例子吧...<body> <div id="demo"></div> <button id="btn" >trigger it</button> <script type= 阅读全文

 

<think>好的,我现在需要帮助用户翻译一段JavaScript代码。用户提供的代码是:const materialId = this.$route.query?.materialReceiveId || this.model.materialId。首先,我要理解这段代码的作用。 这段代码看起来是在Vue.js环境中获取materialId的值。用户可能是在处理路由参数和组件数据之间的优先级问题。代码中使用了可选链操作符(?.),这是ES6的特性,用于防止访问未定义的属性时出现错误。接着是逻辑或(||),用于设置默认值。 用户希望将这段代码翻译成中文解释。我需要确保翻译准确,同时保持技术术语的正确性。首先,逐部分解析: this.$route.query?.materialReceiveId:这里访问Vue路由的查询参数中的materialReceiveId。可选链确保如果query或materialReceiveId不存在,不会抛出错误,而是返回undefined。 然后是逻辑或操作符,如果前面的值为假(比如undefined、null、空字符串等),则使用this.model.materialId作为备用值。 翻译的时候需要说明这两部分,以及整体逻辑。可能还需要解释代码的作用,比如优先使用路由参数,没有的话使用模型中的ID。 用户可能是在处理表单或页面,需要根据不同的场景获取materialId。例如,在编辑现有材料时从路由参数获取ID,创建新材料时使用模型中的ID。需要确认这种使用场景是否常见,并解释代码如何适应这种情况。 另外,用户可能对可选链操作符和逻辑或操作符的作用不太清楚,需要简要说明这两个运算符的功能,以及它们在这里如何协同工作。 还要注意代码的上下文,比如this.$route是Vue Router的属性,this.model可能是组件的数据属性。确保翻译后的解释清晰指出这些来源。 最后,确保语言简洁,技术术语准确,让用户能够理解代码的逻辑和用途。</think>这段代码可以翻译为以下中文解释: **代码逻辑解析:** ```javascript const materialId = this.$route.query?.materialReceiveId || this.model.materialId ``` **分步说明:** 1. `this.$route.query?.materialReceiveId` - 从Vue路由的查询参数(`query`)中尝试获取 `materialReceiveId` - `?.` 是可选链操作符(当`query`不存在时不会报错,返回`undefined`) 2. `||` 逻辑或运算符 - 表示"前者不存在/为假值时,使用后者" 3. `this.model.materialId` - 当前组件数据模型(`model`)中的`materialId` **完整语义:** $$materialId = \begin{cases} 路由参数中的materialReceiveId & \text{若存在} \\ 当前模型的materialId & \text{若路由参数不存在} \end{cases}$$ **应用场景示例:** 在编辑页面中: - 如果是通过「接收物料」跳转过来,会携带`materialReceiveId`路由参数 - 如果是直接编辑已有物料,则使用当前物料的`materialId` **等价传统写法(不含可选链):** ```javascript const routeQuery = this.$route && this.$route.query const materialId = (routeQuery && routeQuery.materialReceiveId) || this.model.materialId ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值