面向对象编程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(); })();