GithubHelp home page GithubHelp logo

define-uniqueid's Introduction

Build Status npm version Bower version

Define-uniqueid is a sequential, unique id generator that can be attached to arbitrary object prototypes. We would like to think that the following are its advantages over the alternatives:

  • Portability - It works across all the different JavaScript module formats.
  • Efficiency - uniqueId's are generated lazily, on-demand. This saves CPU cycles and memory space.
  • Customizability - You can add uniqueId to more specialized prototypes other than Object. You can customize the uniqueId by passing in your own formatting function, in the defineUniqueId call.

License

Usage

DOM / Chrome / Safari / Firefox / Opera

<script src="/bower_components/define-uniqueid/uniqid.js"></script>
<script>
var undefineFx = defineUniqueId(HTMLElement);
var div = document.createElement('div');
div.uniqueId;
</script>

CommonJS / Node

var defineUniqueId = require('define-uniqueid');
var undefineFx = defineUniqueId(Object);
({}).uniqueId;

AMD / Require.js

requirejs.config({
  baseUrl: '.',
  paths: {
    'define-uniqueid': './uniqid'
  }
});

requirejs(['define-uniqueid'], function(defineUniqueId) {
  var undefineFx = defineUniqueId(Object);
  ({}).uniqueId;
});

Options

An object containing options can be passed in the defineUniqueId call.

defineUniqueId(Object, {
  configurable: true,
  enumerable: true,
  redefine: true,
  format: function(id) { return 'obj-' + id; }
})

opts.property

Default: 'uniqueId'

Customize the name of the unique ID property.

opts.format

Customize the uniqueId by passing in your own formatting function.

defineUniqueId(Object, { format: function(id) { return 'obj-' + id; })

opts.configurable

Default: false

False means that the uniqueId property cannot be redefined. True means that the property can be redefined in both the object and the prototype object.

opts.enumerable

Default: false

True means that the uniqueId property can be enumerated.

opts.redefine

Default: false

By default, an error is thrown when the Object prototype already has a defineUniqueId property. Set this to true, to suppress these errors and to allow this property to be redefined.

Browser Support

This library has been tested with good success on a variety of browsers including :

  • Google Nexus 7 : Android 4.1
  • Samsung Galaxy S3 : Android 4.1
  • Chrome 36.0 : Windows 8.1
  • Firefox 30.0 : Windows 8.1
  • Safari 7.0 : OS X Mavericks

Internet Explorer is a confirmed exception. You should be able to work around this, by checking for the the presence of IE's doppelganger uniqueID first. Something like this:

var uniqueId = div.uniqueID || div.uniqueId;

Let me know if you come across any problems.

define-uniqueid's People

Contributors

dicksont avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.