gpt4 book ai didi

javascript - 从构造函数创建时如何包含或检测新对象的名称

转载 作者:行者123 更新时间:2023-11-30 19:37:43 25 4
gpt4 key购买 nike

我有一个包含调试/日志代码和自毁方法的构造函数

我试图在互联网上查找有关如何在创建过程中检测新对象名称的信息,但我找到的唯一建议是将名称作为属性传递。

例如

var counter = {}
counter.a =new TimerFlex({debug: true, timerId:'counter.a'});

我发现没有必要将 counter.a 作为 timerId:'counter.a' 传递,应该有一种 native 方法来检测来自构造函数或新对象实例的名称。

我正在寻找像 ObjectProperties('name') 这样返回 counter.a 的东西,所以我不需要手动将它作为属性包含在内。

添加更多信息

@CertainPerformance 我需要的是区分并行或嵌套运行的不同对象,以便我可以在控制台中看到。

counter.a data...
counter.b data...
counter.a data...
counter.c data... etc

这些对象也只有一个唯一的名称,没有作为 counter.a = counter.c 的引用

另一个功能或 TimerFlex 是一种 self 破坏的方法

 this.purgeCount = function(manualId) {

if (!this.timerId && manualId) {
this.timerId = manualId;
this.txtId = manualId;
}

if (this.timerId) {
clearTimeout(this.t);
this.timer_is_on = 0;
setTimeout ( ()=> { console.log(this.txtId + " Destructed" ) },500);
setTimeout ( this.timerId +".__proto__ = null", 1000);
setTimeout ( this.timerId +" = null",1100);
setTimeout ( "delete " + this.timerId, 1200);

} else {
if (this.debug) console.log("timerId is undefined, unable to purge automatically");
}
}

虽然我还没有这个构造函数的演示,但这与我之前的问题有关 How to have the same Javascript Self Invoking Function Pattern running more that one time in paralel without overwriting values?

最佳答案

对象没有名字——只有构造函数!

当通过变量访问时,Javascript 对象是内存引用。该对象是在内存中创建的,任意数量的变量都可以指向该地址。

看下面的例子

var anObjectReference = new Object();
anObjectReference.name = 'My Object'

var anotherReference = anObjectReference;
console.log(anotherReference.name); //Expected output "My Object"

在上述场景中,当调用将返回变量名的假设方法时,对象返回 anObjectReferenceanotherReference 是不合逻辑的。

哪个....真的?


在此上下文中,如果您想根据访问对象的变量来调节方法执行,请将参数传递给您调用的方法以指示变量(或场景)。

关于javascript - 从构造函数创建时如何包含或检测新对象的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55756766/

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