面向对象编程js

面向对象处理的js,先写点做为记录。

var My = {};// 创建一个命名空间
(function() {
    /***
     * 创建对象的方法
     * @param first argument is the self
     * @param seond parent
     * @param third is have implements
     * @return 返回的是一个构造函数
     */
    My.Class = function() {
        var len = arguments.length;
        var self = arguments[0];
        var superClass = len > 1 ? arguments[1] : null;
        var isHaveImplements = len > 2;
        var clazz;//构造函数
        //如果参self是对象,刚创建一个对象返回
        if (self === Object) {
            clazz = function(){};
        } else {
            clazz = self.constructor;
            delete self.contructor;
        }
        if (superClass) {//存在父类
            clazz.prototype = superClass.prototype;
            clazz.constructor = clazz;
            clazz.super = superClass;
            //继承基一些属性及一些方法
        }
        return (clazz);
    };
})();
 
(function() {
    //测试对象的创建
    var Person = My.Class({
        contructor:function(name){
        this.name = name;
        },
        displayName:function() {
            alert(this.name + "something to use");
        }
    });
 
    var Student = My.Class({
        contructor:function(name,age){
            Student.super.call(this,name);
            this.age = age;
        },
        sayHello: function() {
            print("the name" + name + " age" + age);
        }
    },Person);
 
    var student = new Student("Bythe",22);
    student.sayHello();
    person.displayName();
})();
posted @ 2012-07-03 10:31  xianyuan  阅读(162)  评论(0编辑  收藏  举报