Цитата:
Object.prototype.test = 1; alert(Object.test); |
Цитата:
//IE9-11 Object.create bug fix //http://webreflection.blogspot.ru/2014/04/all-ie-objects-are-broken.html (function() { var polyfill = { isRequired: function() { var object = Object.create({}); object[0] = null; return !object.hasOwnProperty(0); //→ false in IE9-11 }, apply: function() { var create = Object.create; Object.create = function(prototype, properties) { var object = create(prototype, properties); if(!Object.hasOwnProperty.call(object, 0)) { //numeric key fixes a bug, //it can be removed after, //unlike alphabetic key Object.defineProperty(object, 0, { configurable: true }); delete object[0]; } return object; }; } }; if(polyfill.isRequired()) { polyfill.apply(); } }()); С английским мог ошибиться, но суть должна быть ясна :) |
Цитата:
Цитата:
Цитата:
|
nerv_,
Object.prototype[0] = 1; alert([][0]); |
Цитата:
Object.prototype[0] = 1; alert([][0]); alert(''[0]); alert(0[0]); Цитата:
Дело не в "красивей". Понятней (как мне кажется). А объект, как создаться, так и уничтожится, если он не нужен. Впрочем, это лишь мое мнение :) |
Цитата:
var foo = function () {}; new foo; Что тут ненормального? |
Из вариантов создания локального контекста по условию
namespace.property || new function () { … }; //или if (!namespace.property) { (function () { … }()); } //или (function () { if (!namespace.property) { … } }()); //или (function () { if (!namespace.property) { return false; } … return true; }());я выбрал для себя первый а это (function () { /*test case*/ }()) || new function () { … };уже уже вытекающее я бы конечно написал бы new function () { /*test case*/ } || new function () { … };но примитивное значение из конструктора вернуть нельзя, для него автоматически выполнится Object(value), которое будет всегда true |
Цитата:
alert(+new function () { this.valueOf = function () { return 1; }; }); :) Цитата:
namespace.property || void function () { ... }(); |
Кстати, что-то не понял, думал let уже есть во всех браузерах, но почему-то Aurora 30 ошибку выдает. Вроде в Firefox это первым появлялось.
Ждал, что догадаются сделать, чтобы работало так: let label: { //local scope }и чтобы метка была опциональной, а вся конструкция работала в выражении window.Anything || let { … }но мечты не сбываются. |
И не говори...
var array = []; for (let i = 0; i < 2; i++) array.push(() => i); array[0](); // 0 - Traceur, 2 - FF array[1](); // 1 - Traceur, 2 - FF Еще и скобочки лишние () писать нужно :( |
Часовой пояс GMT +3, время: 23:32. |