钱柜qg111老虎机网站:两种扩展

钱柜qg111老虎机网站:两种扩展

你可能感兴趣的稿子:

  • 读jQuery之十一
    增添事件主旨措施
  • 读jQuery之十 事件模块概述
  • 读jQuery之九 一些瑕玷表达
  • 读jQuery之八 包装事件指标
  • 读jQuery之七
    判定点击了鼠标哪个键的代码
  • 读jQuery之六
    缓存数据成效介绍
  • 读jQuery之五(取DOM元素)
  • 读jQuery之四(优雅的迭代)
  • 读jQuery之三(创设选取器)
  • 读jQuery之一(对象的整合)
  • 读jQuery之十二
    删除事件为主措施

jQuery.extend = jQuery.fn.extend = function() {

};

复制代码 代码如下:

复制代码 代码如下:

透过$.extend为目的myself加多了setName方法。但此处最首要研商$.extend怎么样构建jQuery库的。不知注意到上边代码中jQuery.extend和jQuery.fn.extend是同三个函数。大家浏览下jQuery库,发掘有一点措施是透过调用jQuery.extend增添的,某个则是因此调用jQuery.fn.extend扩张的。
上边分别探究:
1,通过jQuery.extend扩展
大家知道jQuery.extend中的jQuery类型是function,即typeof
jQuery值为字符串“function”。借使把jQuery当成叁个类,jQuery.extend也正是为此类增多了静态方法extend。静态方法是无需new多个实例再去调用的,通过“类名+方法名”直接调用。即jQuery.extend(…),jQuery又被赋值给$。因而大家更习贯$.extend(…)。
源码中一贯调用jQuery.extend方法,只传二个参数。如下

复制代码 代码如下:

if ( length === i ) {
target = this;
–i;
}

如下

所以扩大的性质或措施都增加到jQuery对象上了。如bind, one,
unbind等得以由此$(“…”).bind, $(“…”).one,
$(“…”).unbind格局调用。却无法经过 $.bind, $.one, $.unbind情势调用。
jQuery与Prototype同样都以通过extend方法增添出一切库的。相对来讲jQuery的扩展格局更难驾驭一些。
小结如下:
1,jQuery.extend({…})是给function jQuery增多静态属性或方法。
2,jQuery().extend({…})是给jQuery对象加多属性或方法。
/js/2011/zchain/zchain-0.2.js

复制代码 代码如下:

var myself = {name:jack};
$.extend(myself, {setName: function(n){this.name=n;} });
myself.setName(“tom”);

复制代码 代码如下:

if ( length === i ) {
target = this;
–i;
}

而此时的this则是jQuery.prototype(第一条提到的则是jQuery函数本人)。即给jQuery.prototype上加多了众多特性,方法。当jQuery函数实施时,如$()或jQuery(),越多时候是$()。该函数会new二个jQuery(见上一篇jQuery对象的组合)。这时则把扩充的习性,方法都增大到new生成的靶子上了。可能上面这么些示例更易于领悟

就此,jQuery中的isFunction, isArray,
isWindow等皆以静态方法,只可以通过$.isFunction, $.isArray,
$.Window援引。而不能够经过$(“…”).isFuction, $(“…”).isArray,
$(“…”).isWindow情势援引。
钱柜qg111老虎机网站:两种扩展。2,通过jQuery.fn.extend扩展
jQuery.fn等于jQuery.prototype,也便是说给function
jQuery的原型(prototype)上挂了个extend方法。通过调用jQuery.fn.extend(object)来扩大时(注意只传叁个参数object),extend函数中仍然会推行

jQuery.extend({
noConflict: function( deep ) {
window.$ = _$;
if ( deep )
window.jQuery = _jQuery;
return jQuery;
},

});

我们知道extend中一旦只传二个参数,那么将执行该句

function fun(){}//定义一个类(函数)
//给该类原型上加多八个方法extned
fun.prototype.extend = function(obj){
for(var a in obj)
this[a] = obj[a];//注意:这里的this即是fun.prototype
}
//调用extend方法给fun.prototype上加多属性,方法
fun.prototype.extend({name:”fun2″,method1:function(){}})
//输出name,extend,method1
console.dir(new fun())

即扩展自身,而那边的this则是function jQuery。也正是说给function
jQuery增加了众多静态方法,那一个情势都足以一向通过jQuery.xx(或$.xx)方式来调用,实际不是先进行(调用)jQuery方法再去调用xx,如$(“#id”).xx。大概下边这么些事例更易于驾驭

复制代码 代码如下:

复制代码 代码如下:

function fun(){}//定义二个类(函数)
//为此类(函数)增添贰个静态方法extend
fun.extend=function(obj){
for(var a in obj)
this[a] = obj[a];//注意:这里的tihs即fun
}
//调用extend为此类增多了静态属性name,静态方法method1
fun.extend({name:”fun”,method1:function(){}});
//输出name,prototype,extend,method1
console.dir(fun)

大家得以用$.extend去扩展自定义的指标,如

admin

网站地图xml地图