最近用到jquery的自动完成插件 感觉很不爽 就想自己写个 可我对jquery可以说认识的少之又少 从哪里开始了解都不知道 忽然想到jquery好像可以像C#一样实例化对象 然后就是对对象的操作 如果我按C#的思路写插件不就简单了? 还听说jquery就是按C#的习惯开发的 于是在网上找了点jquery的资料看了下 归纳如下 这些资料只能说让一些不认识jquery的人了解jquery 深入的我也说不出来......
例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>让jquery构造出类</title>
<script src="js/jquery-1.2.6-vsdoc-cn.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
//定义个一MyFunction类 在function中可以说是它的构造函数
var MyFunction = function(name) {
this.Name = name;
this.getName = function() {
return "function name is " + this.Name;
};
}
MyFunction.Author = "S.S."; //定义一个静态属性Author
MyFunction.getAuthor = function() { //定义一个静态方法
return MyFunction.Author;
};
MyFunction.prototype = { //为MyFunction扩展方法(扩展了一个属性Time和一个方法getTime)感觉有点像继承
Time: "2009-04-03 13:16",
getTime: function() {
return this.Time;
}
};
MyFunction.prototype.blog = "http://shirley_gx.blog.163.com"; //为MyFunction扩展一个属性blog
alert(MyFunction.getAuthor());
var myInstance1 = new MyFunction("123");
var myInstance2 = new MyFunction("456");
alert(myInstance1.getName());
alert(myInstance2.getName());
myInstance1.Time = new Date();
alert(myInstance1.mail);
alert(myInstance1.getTime());
</script>
</head>
<body>
</body>
</html>
以上运行看看 并对照最后几行的输出不难发现jquery和C#语言类似 静态的只能用类名访问 不能用初始化的对象来访问,它也能改它的成员值
最后
MyFunction.Author = "S.S."; //定义一个静态属性Author
MyFunction.getAuthor = function() { //定义一个静态方法
return MyFunction.Author;
};
这段代码等价与下面的代码
// 实现继承的方法;
MyFunction.extend = function(o, p) {
if (!p) { p = o; o = this; }
for (var i in p) o[i] = p[i];
return o;
};
// 对MyFunction进行扩展;
MyFunction.extend({
Author: "S.S.",
getAuthor: function(i) {
return MyFunction.Author;
}
});
以上是我对jquery认知的一些小小的成果.........-_-!