我被要求将一些
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();