как получить имя var object = {} объекта
Задача получить собственное имя объекта объявленного глобально, оно есть среди прочих элементов объекта за caches но не логично брать просто номер индекса ведь он может изменится var mi = function(obj) { for (var c in this) { document.body.innerHTML += c + ' ' + this[c] + '<br>' } this.index = Object.keys(this).length //индекс собственного имени this.step = Object.keys(this)[this.index] //собственное имя по индексу return this } mi() вывод caches [object CacheStorage] mi function(obj) { for (var c in this) { document.body.innerHTML += c + ' ' + this[c] + '<br>' } this.index = Object.keys(this).length this.step = Object.keys(this)[this.index] return this } TEMPORARY 0 PERSISTENT 1 addEventListener function addEventListener() { [native code] } removeEventListener function removeEventListener() { [native code] } dispatchEvent function dispatchEvent() { [native code] } |
1. При strict var не добавляет свойство в глобал.
2. Объект может быть под десятком "имён". А так: var obj = {}; function mi(global, object){ for (var key in global) if(global[key] === object) return key; return false; } alert(mi(window, obj)) |
Да не особенно, так же явное указание самого объекта -всё равно что написать самому
можно так еще function mi(obj) { alert(this.Name()) } mi.prototype.Name = function(){ return mi.name; } var mi = new mi() |
Часовой пояс GMT +3, время: 21:39. |