как получить имя 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, время: 22:54. |