让jquery构造出类

最近用到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认知的一些小小的成果.........-_-!

posted @ 2009-04-03 13:44  吥滅傳說  阅读(59)  评论(0编辑  收藏  举报