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