tnhu / jsface

Small, fast, elegant, powerful, and cross platform JavaScript OOP library. Support main(), singleton, super call, private, mixins, plugins, AOP and more.
MIT License
301 stars 46 forks source link

requirejs + jsface problem #35

Open muten84 opened 8 years ago

muten84 commented 8 years ago

Hi, I'm trying to combine requirejs with jsface and i have a strange behavior. Consider this simple project example layout: +app/ +core/ Person.js Student.js

I have created two classes declared in two seperate modules defined with requirejs: Person.js:

  define(["jsface"], function() {
    Class = jsface.Class, extend = jsface.extend;

    var Person = Class(
             {constructor : function(name, age) {
            this.name = name;
            this.age = age;
        },
});return Person;};

Studen.js:

  define(["jsface","Person"], function(Person) {
    Class = jsface.Class, extend = jsface.extend;

    var Student= Class([Person],
             {constructor : function(id,name, age) {
            this.id=id;
                        Student.$super.call(this,name,age);
        },
});return Student;};

when i use Student class constructor it fails on: Student.$super.call(this,name,age); the error thrown is "$super" is not a function. It works well if i move the Person class declaration in the same requirejs module (inside the define function of Student.js...). It would be nice to know if this is a normal behavior or there is a jsface problem such as requirejs incompatibility.

Thanks in advance.

Luigi

tnhu commented 8 years ago

Hi muten84, I'm not familiar with requirejs. Could you zip an example and share a link? I'll look into it.

muten84 commented 8 years ago

Hi i understand i will provide an example as soon as possible