JavaScript命名空间,类和继承的简单示例

前端之家收集整理的这篇文章主要介绍了JavaScript命名空间,类和继承的简单示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我被要求将一些 PHP代码移植到 JavaScript中,以便我们的更多逻辑在客户端运行.我想要的是一个简单的例子,显示

>包含两个类(“Master”和“Slave”)的命名空间(“Package”)
>“Master”类有一个属性“p”,一个函数“m”和一个构造函数,它接受一个参数来设置“p”的初始值
>“Slave”类继承“p”,构造函数和“Master”类中的“m”

我不介意使用某种现有的框架,但它必须是轻量级的 – 理想情况下不超过200 LOC(未缩小).

这是我的尝试,FWIW:

var Package = {};

Package.Master = function(pValue) {
    this.p = pValue;
    this.m = function() {
        alert("mmmmm");
    }
}

Package.Slave = function(pValue) {
    // this will inherit from Package.Master
}

// one of the many online examples:
// http://kevlindev.com/tutorials/javascript/inheritance/index.htm
KevLinDev.extend = function(subClass,baseClass) {
   function inheritance() {}
   inheritance.prototype = baseClass.prototype;

   subClass.prototype = new inheritance();
   subClass.prototype.constructor = subClass;
   subClass.baseConstructor = baseClass;
   subClass.superClass = baseClass.prototype;
}

KevLinDev.extend(Package.Slave,Package.Master);

解决方法

我非常喜欢John Resig的 Simple Javascript Inheritance.

例如.:

var Package = {};
Package.Master = Class.extend({
    init: function(pValue) {
        this.p = pValue;
    },m: function() {
        alert("mmmmm");
    }
});

Package.Slave = Package.Master.extend({
    init: function(pValue) {
        this._super(pValue);
    }
});

var slave = new Package.Slave(10);
slave.m();

猜你在找的JavaScript相关文章