extend
这段时间在写一个预览图片的插件,
被我老大说了无数次了,不多说啥,说多了都是泪
昨天看着我的代码他说你用了extend,那你知道是什么意思吗
我只知道是扩展的意思,瞬间觉得自己弱爆了
真的
然后今天看深究深究吧
$.extend():可以合并多个对象,不行你看,这个也用到过
今天在看ES6,然后加上最近一个review我发现web端可以用jQuery,来扩展对象,那因为我最近也在写小程序,就发现小程序并不能用jQuery,那我要是想扩展合并对象的话要怎么办呢,今天刚好看到一个Object.assign()
- var target={a:}
- var srouce={a:,b:,c:}
- var obj=Object.assign({},target,source)
- 最后得到的obj是等于{a:,b:,c:}
也是跟extend一样的效果,也是碰到相同的属性的时候,后面的属性会覆盖前面的属性
我前面加了一个{}空对象,也是跟extend一样,其实加不加都无所谓
- var defaults={
- multis:
- };
- var options = $.extend(opts,defaults, {});
- console.log(options.multis);
- opts = jQuery.extend({
- imgType: ["gif", "jpeg", "jpg", "bmp", "png"],
- // 布局方式 默认方式是平铺
- present: 'full-fill',
- multi: ,
- width: '',
- height: '',
- }, opts || {});
options可以拿到defaults和opts的值
这个要说明一下,要是重复的属性,会被覆盖掉
- var defaults={
- multis:,
- multi:
- };
- var options = $.extend(opts,defaults, {});
- console.log(options.multi);
- opts = jQuery.extend({
- imgType: ["gif", "jpeg", "jpg", "bmp", "png"],
- // 布局方式 默认方式是平铺
- present: 'full-fill',
- multi: ,
- width: '',
- height: '',
- }, opts || {});
这样的时候options.multi会等于10,后面的值会覆盖前面的
还有一个深层合并的,加了一个true,这个还没有用到过
先是没有加true的:
- var test=$.extend({name:'lei',location:{city:'beijing'}},{last:'wen',location:{state:'china'}});
- console.log(test)
- 得到了
- Object
last: "wen"
location: Object
state: "china"
__proto__: Object
name: "lei"
__proto__: Object__defineGetter__: __defineGetter__()__defineSetter__: __defineSetter__()__lookupGetter__: __lookupGetter__()__lookupSetter__: __lookupSetter__()constructor: Object()hasOwnProperty: hasOwnProperty()isPrototypeOf: isPrototypeOf()propertyIsEnumerable: propertyIsEnumerable()toLocaleString: toLocaleString()toString: toString()valueOf: valueOf()get __proto__: __proto__()set __proto__: __proto__()
要是加了true呢
- var test=$.extend(true,{name:'lei',location:{city:'beijing'}},{last:'wen',location:{state:'china'}});
- console.log(test)
- Object
- last:"wen"
- location:
- Object
- city:"beijing"
- state:"china"
- __proto__ :Object
- name :"lei"
- __proto__:Object
$.extend(还可以添加静态方法)这就是jquery.fn.extend{imgPreview:function()}这个就是我现在用到的了
- $.extend({
- add:function(a,b){return a+b},
- minu:function(a,b){return a-b}
- })
- var num=$.add(,)+$.minu(,);
- console.log(num)//
然后刚才偶然间又看到某个大神的文章
然后上面有一段代码是这样的,我觉得特别通俗易懂
- ;(function($){
- $.fn.extend({
- Firstplus: function() {}
- });
- //这样写的话插件的使用方法就是:$('div').Firstplus();
- $.extend({
- Secondplus: function() {}
- });
- //这样写的话插件的使用方法就是:$.Secondplus();
- })($);
这样就让我瞬间明白写插件的时候调用的方式
extend的更多相关文章
- $.extend()的实现源码 --(源码学习1)
目标: $.extend({ add:function(a,b){ return a + b; } }) console.log($.a ...
- 图片放大功能插件及jquery.extend函数理解
前端时间,产品提出社区评论中的图片需要有放大功能.感觉可以共用,所以就想整合一个插件,过程中也借鉴了一些例子. 分析下自己的代码思路: var scaleImg = function(opts) { ...
- $.extend({},defaults, options) --(初体验三)
1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数, ...
- jquery.fn.extend与jquery.extend--(初体验二)
1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jquery.fn.extend(object);给jQuery对象添加方法. $.extend({ a ...
- vue.mixin与vue.extend
vue.mixin 全局注册一个混合,影响注册之后所有创建的每个 Vue 实例.谨慎使用全局混合对象,因为会影响到每个单独创建的 Vue 实例(包括第三方模板).大多数情况下,只应当应用于自定义选项, ...
- jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();
jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...
- jQuery中的$.extend方法来扩展JSON对象及合并,方便调用对象方法
$.extend方法可以扩展JSON对象,用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 例一 合并 settings 和 options,修改并返回 settings var setting ...
- jQuery.extend 函数详解
JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解. 一.Jquery的扩展方 ...
- JavaScript中实现extend()方法
var male = { sex: "male" }; var xiaoming = { name: "xiaoming", school: "xin ...
随机推荐
- 基于开源项目SharpMap的热力图(HeatLayer)实现。
当前公司需要一个用时较少的热力图呈现方案,在避免较底层的GDI开发和比较了多家GIS产品的实际效果之后,团队决定用sharpMap的API来实现,由于之前框架采用的是另外一个开源项目GMap.net, ...
- Android—简单的仿QQ聊天界面
最近仿照QQ聊天做了一个类似界面,先看下界面组成(画面不太美凑合凑合呗,,,,):
- 如何理解MySQL中auto_increment?
1.auto_increment用于主键自动增长.比如从1开始增长,当把第一条数据删除,再插入第二条数据时,主键值为2,不是1.
- ubuntu14 安装及卸载vmware
原帖http://blog.sina.com.cn/s/blog_73dac6b50101gp4f.html 适用于ubuntu14和vmware player 12.5
- Storm构建分布式实时处理应用初探
最近利用闲暇时间,又重新研读了一下Storm.认真对比了一下Hadoop,前者更擅长的是,实时流式数据处理,后者更擅长的是基于HDFS,通过MapReduce方式的离线数据分析计算.对于Hadoop, ...
- Fedora 21 安装 Nvidia 驱动以及失败后的补救方法
在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...
- Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- .NET里简易实现IoC
.NET里简易实现IoC 前言 在前面的篇幅中对依赖倒置原则和IoC框架的使用只是做了个简单的介绍,并没有很详细的去演示,可能有的朋友还是区分不了依赖倒置.依赖注入.控制反转这几个名词,或许知道的也只 ...
- Azure 部署 Asp.NET Core Web App
在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web A ...
- Entity Framework 6 Recipes 2nd Edition(13-10)译 -> 显式创建代理
问题 你有一个POCO实体,原本在执行一个查询时动态创建代理,现在你不想EF延迟创建代理带来的代价. 解决方案 假设你有一个如图Figure13-15的模型 Figure 13-15. A model ...