JQuery学习笔记(三) 数据存储 插件机制 多库共存
数据存储
数据存储是指通过name,value往jquery对象上附上某些自定义的建值对应属性,
var jButton=$("input:button");
jButton.data("att","大家好!"); //附加特有属性 "大家好"
alert(jButton.data("att")); //大家好!
jButton.data("att","首长好!"); //修改att属性 "首长好"
alert(jButton.data("att")); //首长好!
jButton.removeData("att"); //移出att属性
alert(jButton.data("att")); // undefind
一、 data(name,value)
在jquery上存放数据
name: 属性名
value: 属性值
返回值: API上说是返回value,但是测试后发现时jquery对象(this)本身
二、data(name)
name:属性名
返回值: 返回对应的数据
三、removeData(name)
name:属性名
返回值:jquery对象(this)本身
插件机制
插件机制其实是符合面向接口编程的,我提供extend这么个接口,你可以任意扩展此接口
jquery.extend(callback)
jquery.fn.extend(callback)
要区分两者的区别其实也不难,首先要明白两点:
一、(extend)js本身是没有类的概念的,万物皆对象(区分于面向对象中的万物皆对象),他说的是JS里,我们所谓的类(function class()),其实就是对象,因此我们可以 class.showname=function(){alert();}这样来给对象加属性, 此属性是类对象的属性,不为类的实例对象服务,其相当于jquery.extend(callback)等价于jquery.callback=function callback(){}
因此相当于类静态方法,只有类可以调用
二、(fn.extend)原型(prototype)
function People(){}; //在这里他即为类,也为对象
var p1=new People();
var p2=new People();
People.showname=function(){alert("我是静态方法")}; //这个是为People对象服务的
People.prototype.showname=function(){"我是动态方法"}; //这个是为People类服务的,所以后面的类实例都调用此
p1.showname();