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 ...
随机推荐
- angularJS(5)
angularJS(5) 一,数据循环:特别要注意作用域 使用ng-repeat指令. <div ng-app="myApp" ng-controller="myC ...
- 关于asp.net利用mono部署到Linux上的一些说明
linuxdot.net社区群:102732979(如果你认为你已经在.NET跨平台方面有足够的经验,请参加这个群:103810355). 其中有各种大神,嘿嘿,如果你有问题可以来咨询,完全无偿的免费 ...
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- Jquery双向select控件Bootstrap Dual Listbox
效果预览: 一. 下载插件 github地址:https://github.com/istvan-ujjmeszaros/bootstrap-duallistbox 也可以在这个网站中下载:http: ...
- 拉格朗日插值法——用Python进行数值计算
插值法的伟大作用我就不说了.... 那么贴代码? 首先说一下下面几点: 1. 已有的数据样本被称之为 "插值节点" 2. 对于特定插值节点,它所对应的插值函数是必定存在且唯一的(关 ...
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
Oracle SQL Developer中SQL语句格式化快捷键: 每次sql复制到SQL Developer面板的时候,格式老不对,而且看起来很不舒服,所有的sql都挤在一行完成. 这时我们可以全选 ...
- Android开发学习之路-Git的极简教程?
Git是一个代码版本管理工具,也就是允许我们的一个项目拥有多个版本,这样我们可以随心所欲的修改我们的代码,如果出现问题,可以回退到某一个提交点.如果你还在用一堆堆注释来更新你的代码,那么可以尝试一下G ...
- Nginx配置详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- 【转】利用反射快速给Model实体赋值
原文地址:http://blog.csdn.net/gxiangzi/article/details/8629064 试想这样一个业务需求:有一张合同表,由于合同涉及内容比较多所以此表比较庞大,大概有 ...
- 【原创】记一次Project插件开发
一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...