Question: I've heard a lot of talk that enabling bitcode decreases the binary size of an app downloaded from the app store onto iOS 9. I haven't been able to find any resources on whether or not bitcode decreases the binary size on previous iOS versions.

Does enabling bitcode decrease the binary size on iOS 7 or iOS 8?

**EDIT**
According to this [thread](https://forums.developer.apple.com/thread/19743) App Slicing and Bitcode are two separate components. This would make sense considering the documentation for [App Thinning](https://developer.apple.com/library/tvos/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html) splits them into different sections. Is there any official word from Apple on iOS requirements for Bitcode?

Answer: 
You could bind your external variables to the `this` keyword of your closure, using the `.bind()` function:

> 
> The bind() method creates a new function that, when called, has its
>  this keyword set to the provided value, with a given sequence of
>  arguments preceding any provided when the new function is called.
> 
> 
> 

See 
<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind>
First of all: JS is not PHP nor C++ and wont ever be.

`use()` is not for JS. You have lots of possible examples to do what you need, it'a pretty flexible language. Except those in previous answers, I'd like to share one more example:

```
var tax = 'improper';

var priceFactory = function(tax) { 
    // private `tax` variable for this scope
    var tax = tax;

    // or a nightmare to check it
    // var tax = 'number' ==  typeof tax && tax || function() { throw "No tax given"; }();

    return function(quantity, price) {
        return (price * quantity) * (1 + tax / 100);
    }
};

var price = new priceFactory(10); // 10%

var totalPrice = price(1, 100)

```