5. var foo = { bar : true }; for ( var i in foo) { console. log (i); //bar } foo.bar = false ; //Присвояване на нова стойност console. log (foo.bar); //false console. log ( delete foo.bar); //true
15. // Стойности по подразбиране var foo = {}; Object. defineProperty (foo, 'bar' , { value : 'baz' }); for ( var i in foo) { console. log (i); //bar няма да бъде изброено от for-in } foo.bar = 'new value' ; console. log (foo.bar); //baz console. log ( delete foo.bar); //false
27. //Object.create var foo = {a : 10 , b : 20 }; var bar = Object. create (foo); console. log (bar.a); //10 console. log (bar.b); //20 Object. getPrototypeOf (bar) === foo; //true
28. //Object.create /* * Създава се обект, който е на върха на прототипната си верига. * За стойност на [[Prototype]] има null и не наследява свойства. */ var map = Object. create ( null );
30. //Object.keys var obj = { foo : 1 , bar : 2 }; /* * Дефиниране на свойство с [[Enumerable]] атрибут false */ Object. defineProperty (obj, 'baz' , {value : 3 }); /* * Взимане на масив с имената на всички изброими собствени свойства * Object.keys не попълва масива с наследени свойства */ Object. keys (obj); //["foo", "bar"]
32. //Object.getOwnPropertyNames var obj = { foo : 1 , bar : 2 }; /* * Дефиниране на свойство което има [[Enumerable]] атрибут false */ Object. defineProperty (obj, 'baz' , {value : 3 }); /* * Взимане на масив с имената на всички собствени свойства, независимо дали са изброими или не * Object.getOwnPropertyNames не попълва масива с наследени свойства */ Object. getOwnPropertyNames (obj); //["foo", "bar", "baz"]
37. // Object.seal / Object.isSealed var foo = { bar : 1 , baz : 2 }; /* * - спира премахването на текущите свойства от обекта * - не могат да бъдат добавяни нови свойства на обекта */ Object. seal (foo); console. log ( delete foo.bar); //false foo.newProperty = 3 ; console. log (foo.newProperty); //undefined /* * Текущите стойности на свойствата могат да бъдат променени */ foo.bar = 6 ; console. log (foo.bar); //6
38. // Object.seal / Object.isSealed var foo = {}, bar = {}; Object. seal (foo); console. log (Object. isSealed (foo)); //true console. log (Object. isSealed (bar)); //false
40. // Object.freeze / Object.isFrozen var foo = { bar : 1 , baz : 2 }; /* * - предотвратява премахването на текущите свойства * - не могат да бъдат добавяни нови свойства * - текущите стойности на свойствата НЕ могат да бъдат променяни */ Object. freeze (foo); console. log ( delete foo.bar); //false foo.newProperty = 3 ; console. log (foo.newProperty); //undefined foo.bar = 6 ; console. log (foo.bar); //1
47. Изпълнение на единичен скрипт през Narcissus <script type = "application/narcissus" > //... </script> <script type = "text/narcissus" > //... </script> Изполване на Narcissus?
48. Изпълнение на всички скриптове в страницата през Narcissus. (независимо от type атрибута им) <meta http-equiv = "Content-Script-Type" content = "application/narcissus" > <meta http-equiv = "Content-Script-Type" content = "text/narcissus" > Изполване на Narcissus?
49. Конец Автор: Асен Божилов Благодарности на: Dmitry Soshnikov