jQuery中 $.extend 和 $.fn.extend 作用及区别
2024-08-28 00:31:34
jQuery为开发插件提拱了两个方法,分别是:
1. jQuery.fn.extend();
2. jQuery.extend();
虽然 javascript没有明确的类的概念,但是可以构建类似类的定义。
jQuery便是一个封装得非常好的类,比如,$("#btn1") 会生成一个 jQuery类的实例,理解这一点很重要。
一、jQuery.extend(object)
它是为jQuery类添加类方法,可以理解为添加静态方法。
1.1 jQuery.extend
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
}); jQuery.min(2,3); // 2
jQuery.max(4,5); //
1.2 jQuery.extend( target, object1, [objectN] )
用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options); // 结果:settings == { validate: true, limit: 5, name: "bar" }
二、 jQuery.fn.extend(object)
$.fn是指jQuery的命名空间,fn上的成员(方法function及属性property),会对jQuery实例每一个有效。
查看jQuery代码,就不难发现。
jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//.... };
原来 jQuery.fn = jQuery.prototype。
所以,它是对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”,jQuery类的实例可以使用这个“成员函数”。
比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:
$.fn.extend({
doAlertWhileClick:function() {
$(this).click(function(){
alert($(this).val());
});
}
});
$("#input1").doAlertWhileClick() // 页面调用
$("#input1") 为一个jQuery实例,当它调用成员方法 doAlertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。
转自:http://www.cnblogs.com/Dlonghow/p/4142034.html
最新文章
- 使用CocoaPods被卡住:Updating local specs repositories
- POSTMAN as debugger for integration APPs
- jmeter 与 java http
- nyoj------203三国志
- Kubuntu麦克风音频无声音
- CentOS Mysql自动备份 .txt
- 坏账,断供,四大国有资产管理公司(AMC):东方、长城、信达和华融
- HelloX操作系统网络功能简介及使用和开发指南
- iozone文件系统测试 与EXCEL 制图
- AVL旋转树
- linux apache添加多站点配置(Ubuntn和Centos)
- 用vue开发一个app(3,三天的成果)
- (Python3 自定义函数实现数字金字塔 代码
- 原生js阻止表单跳转
- Maven 安装 on centos7
- C++:error 1189(转)
- [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)
- Hibernate.编写xml文件无自动提示信息
- pta l2-18(多项式A除以B)
- zend framework分析总结[转]
热门文章
- python SyntaxError: Non-ASCII character &#39;\xe8&#39; in file C:\Users\nwpujun\PycharmProjects\projects\hrl1\hrlAgent\src\li_nn.py on line 52
- leetcode个人题解——two sum
- 特殊符号 &; 以太坊
- rewrite or internal redirection cycle while processing nginx重定向报错
- C中的除法,商和余数的大小、符号如何确定
- 第十八次ScrumMeeting会议
- 策略模式,ASP.NET实现
- Java微笔记(1)
- scrapy(1)——scrapy介绍
- vuex介绍--一篇看懂vuejs的状态管理神器