Notable Pottery Manufacturer
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    caller-ofpublic

    caller-of

    The tiniest yet most powerful JS utility ever :D

    /** WTFPL Style License */
    function callerOf(c) {'use strict';return c.call.bind(c)}

    What Does Above Code Do

    Here is what we usually do

    object.hasOwnProperty(key)

    Here is what callerOf create

    hasOwnProperty(object, key)

    so we can borrow any method at any time and reuse it in a minifier friendly way.

    var bind = callerOf(Function.bind);
     
    // easy log
    var log = bind(console.log, console);
    log('it works');
     
    // common borrowed methods
    var
      has = callerOf({}.hasOwnProperty),
      whoIs = callerOf({}.toString),
      forEach = callerOf([].forEach),
      slice = callerOf([].slice);
     
    has({a:1}, "a"); // true
    has({a:1}, "toString"); // false
     
    whoIs([]);    // "[object Array]"
    whoIs(false); // "[object Boolean]"
     
    slice(document.querySelectorAll("*")); // array
    (function (obj){
      var args = slice(arguments, 1);
    }());
     
    forEach(document.getElementsByTagName("body"), log);

    Compatibility

    Every JavaScript engine I know, included IE.

    For node.js simply npm install caller-of then var callerOf = require('caller-of')

    What If No Function.prototype.bind

    You can use this tiny yet working polyfill ^_^

    // 139 bytes gzipped
    /*! (C) WebReflection, Mit Style License */
    (function (P) {
      'use strict';
      if (!P.bind) {
        P.bind = function (s) {
          var
            c = this,
            l = [].slice,
            a = l.call(arguments, 1);
          return function bind() {
            return c.apply(s, a.concat(l.call(arguments)));
          };
        };
      }
    }(Function.prototype));

    install

    npm i caller-of

    Downloadsweekly downloads

    6

    version

    1.0.1

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar