Jquery中extend该怎么写,有几种写法,分别用在什么场景?
1、$.fn=$.prototype 原型方法什么时候使用?
2、$.extend(src) 和 $.fn.extend(src) 有什么区别?
3、浅复制和深复制的区别是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
1、$.fn=$.prototype 原型方法什么时候使用?
2、$.extend(src) 和 $.fn.extend(src) 有什么区别?
3、浅复制和深复制的区别是什么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
jQuery插件开发分为两种:1 类级别、2 对象级别
$.fn=$.prototype其实就是对象级别
虽然JavaScript 没有明确的类的概念,但是用类来理解它,更容易理解,jQuery便是一个封装得非常好的类,比如我们用语句$("#btn1").css(……),会生成一个 jQuery类的实例
1、类级别 $.extend(src)
类级别你可以理解为拓展jQuery类,最明显的例子是$.ajax(...),相当于静态方法,开发扩展其方法时使用$.extend方法
例子1:
例子2:
2 对象级别 $.fn.extend(src)
对象级别则可以理解为基于对象的拓展,如$("#table").set(...); 这里这个set呢,就是基于对象的拓展了。开发扩展其方法时使用$.fn.extend方法,
类似于命名空间的扩展
浅复制与深复制
在C语言中其实就是拷贝地址与数据
1、浅复制
浅复制对象A时,对象B将复制A的所有字段,如果字段是内存地址,B将复制地址,若果字段是基元类型,B将复制其值。
浅复制的缺点是如果你改变了对象B所指向的内存地址,你同时也改变了对象A指向这个地址的字段
2、深复制
这种方式会完全复制所有数据,优点是B与A不会相互依赖(A,B完全脱离关联), 缺点是复制的速度慢,代价大
一种是实现深度拷贝的方案:
可以看到a没有被修改,但是要更深层次的遍历,肯定很耗费性能的。用for-in把所有可枚举的包括原型链上的一起遍历了