Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7196799
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T20:50:47+00:00 2026-05-28T20:50:47+00:00

The documentation explain how to extend a class class Zebra extends Animal … But

  • 0

The documentation explain how to extend a class

class Zebra extends Animal
    ...

But how do I extend multiple classes? The following does not work

class Sidebar extends Controller, EventEmitter
    ...

But I wish it did. The JavaScript behind this is more than able to extend any number of classes using the __extend function, but is there a way to do it in coffee-script?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T20:50:49+00:00Added an answer on May 28, 2026 at 8:50 pm

    Guess I’ll just answer my own question. The way I ended up handling this is extending all my classes from a class I call “SuperClass” (the name doesn’t matter). From that class I can extend any number of classes. Anyway the class looks like this

    moduleKeywords = ['included', 'extended']
    
    class SuperClass
        @include: (obj) ->
            throw('include(obj) requires obj') unless obj
            for key, value of obj.prototype when key not in moduleKeywords
                @::[key] = value
    
            included = obj.included
            included.apply(this) if included
            @
    

    Pretty much just stole it from Spine. An example of a class extended from SuperClass:

    class Sidebar extends SuperClass
    
        # Include some other classes
        @include Controller
        @include EventEmitter
    
        ###
        Constructor function
        ###
        constructor: ->
            # Call extended constructors
            Controller.call @
            EventEmitter.call @
    
            console.log 'Sidebar instantiated'
    

    Notice that to call the inherited class’ constructor the class function is called with @/this as context. I haven’t needed to extend class functions yet, but I imagine it’s very similar to calling the parent constructor:

    someFunction: ->
        ExtendedClass::someFunction.call @
    

    Please edit this post if I’m wrong. Also please excuse my lack of class inheritance terminology – I’m no expert


    Update: One could also define a constructor for SuperClass that automatically called the constructor for all included classes on instantiation. That way you’d just need to call super() from the subclass. I haven’t bothered with that though

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I try to use autocomplete jquery-ui script, but from the documentation it's explain that
This seems super basic, but I'm having trouble finding documentation online to explain it.
In Zend's Documentation they write about creating Navigation Containers. But they don't explain where
Can anyone explain usage of weak references? The documentation doesn't explain it precisely, it
The MySQL 5.4 documentation, on Optimizing Queries with EXPLAIN , says this about these
Can anyone explain what the jquery documentation is exactly referring to with this statement:
Possible Duplicate: Please explain JSONP For example in the jQuery documentation I find both
According to the MySQL documentation regarding Optimizing Queries With Explain : * ALL: A
here is some documentation generated from activeX, can you explain me what do those
When it comes to code documentation, it is usually accepted that code should explain

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.