Scope, Closure
Daniel Steigerwald
JavaScript
// http://daniel.steigerwald.cz (MIT Licensed)
// tohle vše jsou objekty
var array = [];
var fn = function() { };
var regex = /a/;
// lze jim přiřadit hodnotu
array.someProperty = 1;
fn['someProperty'] = 2; // alternativní zápis
regex.someProperty = 3;
alert([
array.someProperty,
fn.someProperty,
regex.someProperty
]);
// a předávají se referencí
var foo = function(a, f, r) {
delete a.someProperty;
delete f.someProperty;
delete r.someProperty;
};
foo(array, fn, regex);
alert('Hodnoty jsou vymazány ' + [
array.someProperty === undefined,
fn.someProperty === undefined,
regex.someProperty === undefined
]);
// object vytvořený zápisem zvaným 'object literal'
var object1 = { a: 'foo', b: 'bla', c: function() { } };
// objekt jako instance třídy Object
var object2 = new Object;
// objekt jako instance vlastní třídy
var Class = function() { };
var object3 = new Class;