gpt4 book ai didi

javascript - 如何获取 javascript 对象(例如 window)的数字或字符串值而不是字符串 [object]

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:21 27 4
gpt4 key购买 nike

如何获取 javascript 对象(例如 window)的数字或字符串值而不是字符串 [object]

寻找对象 ID 之类的东西,例如该对象唯一的 44001 或 0xFF0012

最佳答案

Javascript 不会为每个对象保留类似 python 的唯一哈希值。您可以创建一个函数来为对象分配一个唯一的字符串,或者检索已分配的字符串。

var getUniqueId = (function(){

// uncomment this block if you want to avoid memory leaks
// in browsers with crappy garbage collectors.
/*
try {
window.addEventListener('unload', cleanup);
window.addEventListener('beforeunload', cleanup);
} catch (_) { try {
window.attachEvent('onunload', cleanup);
window.attachEvent('onbeforeunload', cleanup);
} catch (__){}}

function cleanup () { guid.knownObjects.length=0; }
*/

guid.knownObjects=[];

return guid;

function guid (obj) {
for (var i=guid.knownObjects.length; i--;) {
if (guid.knownObjects[i][0]===obj) return guid.knownObjects[i][1];
}
var uid='x'+(+(''+Math.random()).substring(2)).toString(32);
guid.knownObjects.push([obj, uid]);
return uid;
}

}());

测试:

getUniqueId(window)
> "x7onn8ne58ug"

getUniqueId(document)
> "x9jeriqjdf9o"

getUniqueId(document)
> "x9jeriqjdf9o"

getUniqueId(window)
> "x7onn8ne58ug"

您可以执行 console.dir(getUniqueId.knownObjects) 以获得一些有用的调试信息。

getUniqueId.knownObjects
> [
Array
0: DOMWindow
1: "x7onn8ne58ug"
,
Array
0: HTMLDocument
1: "x9jeriqjdf9o"
]

关于javascript - 如何获取 javascript 对象(例如 window)的数字或字符串值而不是字符串 [object],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com