为什么下面这种写法不行?而jQuery就可以?target参数是指那个?
;(function($){
$.fn.extend({
color: function(option){
var options = $.extend({
col: "blue",
fz : "20px"
}, option);
this.css("color", options.col);
this.css("fontSize", options.fz);
return this;
},
background: function(option){
var options = $.extend({
bg: "blue"
}, option);
this.css("background", options.bg);
return this;
}
})
})(Zepto);
注意:1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略。此时,target就是jQuery对象本身。通过这种方式,我们可以为全局对象jQuery添加新的函数。这句怎么理解?
正在回答
同学你好,问题解答如下:
1、$.fn是jQuery的原型对象,jQuery.fn($.fn)=jQuery.prototype,其extend()方法用于为jQuery的原型添加新的属性和方法。那么所有jquery的实例化对象,都会具有添加的方法,或者属性。
2、$.fn.extend({},{})中没有target参数,$.extend()中才有target参数,参考上一次的回复。
3、这两个方法的区别,一个是在jQuery类上添加的,可以理解为添加静态方法,调用时候用$或者jQuery来调用。而jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法,调用时候是jquery对象(获取的元素)来调用的。
例如:第一种方式上一次回复中已经举例了
第二种方式:
自己可以再理解下,祝学习愉快!
同学你好,zepto.js中和jquery.js中的方法并不完全一样,所以还需要看文档使用方法:
http://www.zeptojs.cn/#$.extend
里面没有 $.fn.extend()这种写法,所以会有问题。
另外,target指的是目标对象,下面举个例子
object1就是目标对象,将object2合并到object1中,这是多个参数的情况。
如果只有一个参数,就不是合并的情况了,意思是将这个对象添加在jQuery上,为jQuery添加全局函数。例如:
自己可以测试理解下。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星