从子类错误继承

时间:2018-08-06 17:20:56

标签: javascript

我正在阅读一本书,并按照显示的示例进行操作。我被困在这里。这是本书中示例的副本。

这怎么行不通-我认为问题出在“ Change klass的原型”上。

我得到的错误是“呼吸不是一种功能”

有人可以向我解释如何以及为什么吗?非常感谢。

  (function() {

    var Class = function(parent){
      var klass = function(){
        this.init.apply(this, arguments);
      };

      // Change klass's prototype
      if (parent) {
        var subclass = function() { };
        subclass.prototype = parent.prototype;
        klass.prototype = new subclass;
      };

      klass.prototype.init = function(){};

      // Shortcuts
      klass.fn = klass.prototype;
      klass.fn._class = klass;
      klass._super = klass.__proto__;

      // Adding instance properties
      klass.include = function(obj) {
        var included = obj.included; // Callback
        for (var i in obj) {
            klass[i] = obj[i];
        }
        if (included) included(klass)
      };

      return klass;
    };

    var Animal = new Class;
    Animal.include({
      breath: function() {
        console.log("breath");
      }
    });

    var Cat = new Class(Animal);

    // Cat inherits from Animal
    var tommy = new Cat;
    tommy.breath();

  })();

0 个答案:

没有答案