Blame view

node_modules/es6-symbol/README.md 2.08 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  # es6-symbol
  ## ECMAScript 6 Symbol polyfill
  
  For more information about symbols see following links
  - [Symbols in ECMAScript 6 by Axel Rauschmayer](http://www.2ality.com/2014/12/es6-symbols.html)
  - [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)
  - [Specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-constructor)
  
  ### Limitations
  
  Underneath it uses real string property names which can easily be retrieved, however accidental collision with other property names is unlikely.
  
  ### Usage
  
  If you'd like to use native version when it exists and fallback to [ponyfill](https://ponyfill.com) if it doesn't, use *es6-symbol* as following:
  
  ```javascript
  var Symbol = require('es6-symbol');
  ```
  
  If you want to make sure your environment implements `Symbol` globally, do:
  
  ```javascript
  require('es6-symbol/implement');
  ```
  
  If you strictly want to use polyfill even if native `Symbol` exists (hard to find a good reason for that), do:
  
  ```javascript
  var Symbol = require('es6-symbol/polyfill');
  ```
  
  #### API
  
  Best is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects). Still if you want quick look, follow examples:
  
  ```javascript
  var Symbol = require('es6-symbol');
  
  var symbol = Symbol('My custom symbol');
  var x = {};
  
  x[symbol] = 'foo';
  console.log(x[symbol]); 'foo'
  
  // Detect iterable:
  var iterator, result;
  if (possiblyIterable[Symbol.iterator]) {
    iterator = possiblyIterable[Symbol.iterator]();
    result = iterator.next();
    while(!result.done) {
      console.log(result.value);
      result = iterator.next();
    }
  }
  ```
  
  ### Installation
  #### NPM
  
  In your project path:
  
  	$ npm install es6-symbol
  
  ##### Browser
  
  To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
  
  ## Tests [![Build Status](https://travis-ci.org/medikoo/es6-symbol.png)](https://travis-ci.org/medikoo/es6-symbol)
  
  	$ npm test