mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-13 14:05:27 +00:00
update
This commit is contained in:
81
node_modules/with/README.md
generated
vendored
Normal file
81
node_modules/with/README.md
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
# with
|
||||
|
||||
Compile time `with` for strict mode JavaScript
|
||||
|
||||
[](http://travis-ci.org/pugjs/with)
|
||||
[](https://david-dm.org/pugjs/with)
|
||||
[](https://www.npmjs.com/package/with)
|
||||
|
||||
## Installation
|
||||
|
||||
$ npm install with
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
var addWith = require('with')
|
||||
|
||||
addWith('obj', 'console.log(a)')
|
||||
// => ';(function (console, a) {
|
||||
// console.log(a)
|
||||
// }("console" in obj ? obj.console :
|
||||
// typeof console!=="undefined" ? console : undefined,
|
||||
// "a" in obj ? obj.a :
|
||||
// typeof a !== "undefined" ? a : undefined));'
|
||||
|
||||
addWith('obj', 'console.log(a)', ['console'])
|
||||
// => ';(function (console, a) {
|
||||
// console.log(a)
|
||||
// }("a" in obj ? obj.a :
|
||||
// typeof a !== "undefined" ? a : undefined));'
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### addWith(obj, src[, exclude])
|
||||
|
||||
The idea is that this is roughly equivallent to:
|
||||
|
||||
```js
|
||||
with (obj) {
|
||||
src
|
||||
}
|
||||
```
|
||||
|
||||
There are a few differences though. For starters, assignments to variables will always remain contained within the with block.
|
||||
|
||||
e.g.
|
||||
|
||||
```js
|
||||
var foo = 'foo'
|
||||
with ({}) {
|
||||
foo = 'bar'
|
||||
}
|
||||
assert(foo === 'bar')// => This fails for compile time with but passes for native with
|
||||
|
||||
var obj = {foo: 'foo'}
|
||||
with ({}) {
|
||||
foo = 'bar'
|
||||
}
|
||||
assert(obj.foo === 'bar')// => This fails for compile time with but passes for native with
|
||||
```
|
||||
|
||||
It also makes everything be declared, so you can always do:
|
||||
|
||||
```js
|
||||
if (foo === undefined)
|
||||
```
|
||||
|
||||
instead of
|
||||
|
||||
```js
|
||||
if (typeof foo === 'undefined')
|
||||
```
|
||||
|
||||
This is not the case if foo is in `exclude`. If a variable is excluded, we ignore it entirely. This is useful if you know a variable will be global as it can lead to efficiency improvements.
|
||||
|
||||
It is also safe to use in strict mode (unlike `with`) and it minifies properly (`with` disables virtually all minification).
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
Reference in New Issue
Block a user