lib/id.js
function ID (pointer) {
  if (typeof this !== 'function') return createFunction(null, 0, ID, arguments);

  var objClass = core.object_getClass(pointer);

  // This is absolutely necessary, otherwise we'll seg fault if a user passes in
  // a simple type or specifies an object on a class that takes a simple type.
  if (!objClass || ref.isNull(objClass)) {
    throw new TypeError('An abstract class or delegate implemented a method ' +
                        'that takes an ID (object), but a simple type or ' +
                        'structure (such as NSRect) was passed in');
  }

  this.pointer = pointer;
  this.msgCache = [];

  this[invoke] = function () {
    return this.msgSend(arguments, false, this);
  }.bind(this);
}
function ID (pointer) {
  if (typeof this !== 'function') return createFunction(null, 0, ID, arguments);

  var objClass = core.object_getClass(pointer);

  // This is absolutely necessary, otherwise we'll seg fault if a user passes in
  // a simple type or specifies an object on a class that takes a simple type.
  if (!objClass || ref.isNull(objClass)) {
    throw new TypeError('An abstract class or delegate implemented a method ' +
                        'that takes an ID (object), but a simple type or ' +
                        'structure (such as NSRect) was passed in');
  }

  this.pointer = pointer;
  this.msgCache = [];

  this[invoke] = function () {
    return this.msgSend(arguments, false, this);
  }.bind(this);
}
function ID ( pointer ) { if ( typeof this !== 'function' ) return createFunction ( null , 0 , ID , arguments ) ; var objClass = core . object_getClass ( pointer ) ; // This is absolutely necessary, otherwise we'll seg fault if a user passes in // a simple type or specifies an object on a class that takes a simple type. if ( ! objClass || ref . isNull ( objClass ) ) { throw new TypeError ( 'An abstract class or delegate implemented a method ' + 'that takes an ID (object), but a simple type or ' + 'structure (such as NSRect) was passed in' ) ; } this . pointer = pointer ; this . msgCache = [ ] ; this [ invoke ] = function ( ) { return this . msgSend ( arguments , false , this ) ; } . bind ( this ) ; }
The 'id' function is essentially the "base class" for all Objective-C
objects that get passed around JS-land.
The id function is essentially the base class for all Objective - C objects that get passed around JS - land .