≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > JavaScript

JavaScript 使用Simple Inheritance创建自己的类示例

人气:572 时间:2018-09-26

这篇文章主要为大家详细介绍了JavaScript 使用Simple Inheritance创建自己的类示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编罗X来看看吧。最近一直再研究类的写法。因为经常做一些可复用,可扩展的方法。
之前一直使用别人包装好的组件,比如玉伯开发的Alare组件,用的很舒服啊~~
但是不是什么项目都要使用那么复杂的组件吧,如果用JQ自己写一个呢,JQ好像还没有类的包装,可能以后会有吧。
研究了半天发现了一个好东西,就是John Resig写的 Simple JavaScript Inheritance。
真是完美的解决了我的需求,而且代码也很少,下面就放上示例
JS代码如下:

/**
 * 使用Simple Inheritance创建类
 *
 * @param 
 * @arrange (512.笔记) www.q1010.com
 **/
(function() {
    /*
     * Simple Inheritance
     */
    var initializing = false;
    var fnTest = /xyz/.test(function() {
        xyz;
    }) ? /\b_super\b/ : /.*/;
    this.Class = function() {};
    Class.extend = function(prop) {
        var _super = this.prototype;
        initializing = true;
        var prototype = new this();
        initializing = false;
        for (var name in prop) {
            prototype[name] = typeof prop[name] == "function" &&
                typeof _super[name] == "function" && fnTest.test(prop[name]) ?
                (function(name, fn) {
                return function() {
                    var tmp = this._super;
                    this._super = _super[name];
                    var ret = fn.apply(this, arguments);
                    this._super = tmp;
                    return ret;
                };
            })(name, prop[name]) :
                prop[name];
        }
        function Class() {
            if (!initializing && this.init)
                this.init.apply(this, arguments);
        }
        Class.prototype = prototype;
        Class.constructor = Class;
        Class.extend = arguments.callee;
        return Class;
    };
})();

$(function() { 
    //定义一个Box的类
    var Box = Class.extend({
        init: function(opts) {
            opts = $.extend({
                "element": 'box'
            }, opts || {});
            this.opts = opts;
            this.element = $(opts.element);
            this.render();
        },
        render: function() {
            var elEl = this.element;
            elEl.html(this.opts.name + ',' + this.opts.age);
            this.show();
        },
        show: function() {
            var elEl = this.element;
            elEl.show();
        }
    });

    //实例1 - 直接用new来实例化Box
    var mybox = new Box({
        element: '.mybox',
        name: '张三',
        age: 15
    });

    //实例2 - 先扩展,再用new来实例化Box
    var mybox2 = Box.extend({
        init: function(opts) {
            this.opts = opts;
            this.element = $(opts.element);
            this.render();
            this.event();
        },
        hide: function() {
            var elEl = this.element;
            elEl.hide();
        },
        event: function() {
            var elEl = this.element;
            var that = this;
            elEl.on('click', function() {
                that.hide();
            })
        }
    });
    new mybox2({
        element: '.mybox2',
        name: '李四',
        age: 55
    });
})
// 来自:四海网(www.q1010.com)

本文来自:http://www.q1010.com/174/1746-0.html

注:关于JavaScript 使用Simple Inheritance创建自己的类示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:Simple,Inheritance

您可能感兴趣的文章

  • php使用simpleXML打印xml元素实现方法
  • PHP 扩展simplexml_load_file加载XML文件的简单示例
  • php使用simplexml_load_file加载XML文件,并显示的简单示例
  • php 使用Codeigniter 通过 SimpleXML将xml转换成对象示例
  • php 使用SimpleXML处理XML的简单示例
上一篇:JS类模拟练习解析
下一篇:JavaScript 正则表达式删除超链接的简单示例
热门文章
  • js随机生成两位数
  • js 文字超出部分隐藏、点击显示更多示例
  • 原生JS+css 点击查看全文的简单示例(类似今日头条效果)
  • javascript实现文字隐藏、展开收起的简单示例
  • JS 展开/收起按钮显示隐藏文字示例
  • JavaScript 正则判断文本是否含有超链接的简单示例
  • 原生JS实现鼠标悬停图片显示文字的简单示例
  • JS 点击按钮显示更多内容的简单示例
  • 原生js for循环遍历二维数组、嵌套元素的简单示例
  • javascript 浮点数转换成整数三种方法
  • 最新文章
    • js获取时间,处理时间等的实现方法
    • JavaScript 判断小数是否相等的简单示例
    • JavaScript 获取数组极值的简单示例
    • JavaScript防抖 & 节流的简单示例
    • JavaScript深拷贝的简单示例
    • JavaScript数组降维的简单示例
    • JavaScript手机端判断浏览器类型的简单示例
    • JavaScript获取 URL 中的参数的简单示例
    • JavaScript以“天”为单位获取响应的时间戳的简单示例
    • JavaScript时间格式化的简单示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。