Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ctor

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ctor

A simple and familiar prototypal system

  • 0.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

ctor

A simple and familiar prototypal system.

var Ctor = require('ctor');

var Person = Ctor.extend({
  constructor: function Person(name, nickname) {
    this.name = name;
    this.nickname = nickname;
  }
  , sayHello: function() {
    return "Hey, I'm " this.name + '. But you can call me ' + this.nickname; 
  }
});

var p = Person.create('Marco', 'polotek');

console.log(p.sayHello()); // Hey, I'm Marco. But you can call me polotek

var Employee = Person.extend({
  constructor: function Employee(name, nickname, job) {
    // The person constructor has already been called
    this.job = job;
  }
  , sayHello: function() {
    // No concept of "super". If you want a super call, be explicit
    return "Hello, my name is " + this.name + '. I work at ' + this.job;
  }
});

var e = Employee.create('Marco', 'polotek', 'Acme Novelties');

console.log(e.sayHello()); // 'Hello, my name is Marco. I work at Acme Novelties'

// (p instanceof Person) === true
// p.sayHello === Person.prototype.sayHello
// (e instanceof Employee) === true
// (e instanceof Person) === true
// (e.__proto__ instanceof Person) === true

ctor is a really simple prototypal object system that codefies a few simple constructs that I like.

  • Don't use new. Think of create as your object factory. This follows nicely from Object.create.
  • There is a constructor for initializing your objects. create calls this on every object.
  • Instead of "inheritance", there is simple extension. extend creates a new object factory with the following behavior
    • Proper prototype chain is set up.
    • The extended parent constructor will always be called implicitly. Initialization integrity is preserved.
    • No other fanciness. No "super".

Keywords

FAQs

Package last updated on 31 Mar 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc