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

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

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

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

这是我的尝试,FWIW:

  1. var Package = {};
  2.  
  3. Package.Master = function(pValue) {
  4. this.p = pValue;
  5. this.m = function() {
  6. alert("mmmmm");
  7. }
  8. }
  9.  
  10. Package.Slave = function(pValue) {
  11. // this will inherit from Package.Master
  12. }
  13.  
  14. // one of the many online examples:
  15. // http://kevlindev.com/tutorials/javascript/inheritance/index.htm
  16. KevLinDev.extend = function(subClass,baseClass) {
  17. function inheritance() {}
  18. inheritance.prototype = baseClass.prototype;
  19.  
  20. subClass.prototype = new inheritance();
  21. subClass.prototype.constructor = subClass;
  22. subClass.baseConstructor = baseClass;
  23. subClass.superClass = baseClass.prototype;
  24. }
  25.  
  26. KevLinDev.extend(Package.Slave,Package.Master);

解决方法

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

例如.:

  1. var Package = {};
  2. Package.Master = Class.extend({
  3. init: function(pValue) {
  4. this.p = pValue;
  5. },m: function() {
  6. alert("mmmmm");
  7. }
  8. });
  9.  
  10. Package.Slave = Package.Master.extend({
  11. init: function(pValue) {
  12. this._super(pValue);
  13. }
  14. });
  15.  
  16. var slave = new Package.Slave(10);
  17. slave.m();

猜你在找的JavaScript相关文章