问题标签 [object-destruction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
576 浏览

javascript - es6 对象解构,赋值给新对象

这里是 es6 的新手。有没有办法用 es6 特性缩短这段代码?我正在尝试从一个对象中解构并将这些拉出的属性放入一个新对象中。

我试过这个,但没有奏效:

0 投票
1 回答
142 浏览

javascript - 使用对象破坏时浏览器不一致的意外“未定义”字符串

当我在一些浏览器控制台中尝试一些对象破坏语法时,发生了一些意想不到的事情。首先我进入

接着

最后

所以 chrome 和 firefox 都决定给我"undefined"一个字符串,而不是一个未定义的值,而 edge 会给我一个通常的undefined. 但是,当我输入

接着

在边缘,它给了我一个""而不是undefined

这是某些浏览器不一致的结果吗?或者实际上是一些错误?

截图如下

chrome-66-0-3359-181-no-const.PNG chrome-66-0-3359-181-no-const.PNG

edge-41-16299-402-0-with-edgehtml-16-16299-no-const.PNG edge-41-16299-402-0-with-edgehtml-16-16299-no-const.PNG

edge-41-16299-402-0-with-edgehtml-16-16299-with-const.PNG edge-41-16299-402-0-with-edgehtml-16-16299-with-const.PNG

firefox-60-0-1-no-const.PNG firefox-60-0-1-no-const.PNG

0 投票
3 回答
183 浏览

python - With语句,自动删除对象

是否可以在其类中删除对象形式?

返回:

a为什么退出后我仍然可以访问该对象with?有没有办法自动删除对象__exit__

0 投票
1 回答
650 浏览

typescript - Visual Studio 代码禁用对象解构的代码格式

我正在使用 Koa 和 Typescript 编写网络应用程序。在 vscode 中,我遇到了不需要的代码格式:当我使用对象解构方法声明变量时,vscode 将其自动格式化为多行:

在这种情况下,我希望它保留在一行中:

我喜欢 vscode 如何处理我的代码格式,所以我不想禁用它。但是如果行长度小于 80 个字符,我想找到一种解决方法来禁用对象解构格式。

我应该使用什么规则来解决这个问题?我应该更改 vscode 规则还是 tslint 规则?

这是我的 .tslint 文件:

0 投票
1 回答
208 浏览

c++ - C++17 复制省略和对象销毁

cppreference

当复制省略发生时,实现将省略的复制/移动 (C++11 起) 操作的源和目标视为简单地引用同一对象的两种不同方式,并且该对象的销毁发生在后面的两个对象在没有优化的情况下被销毁的时间(除了,如果所选构造函数的参数是对对象类型的右值引用,则在目标被销毁时发生销毁)(C++17 起)。

对于像这样的简单情况A a = returnA();,我可以理解该对象没有被销毁,而是像后来returnA()的情况一样发生了销毁。A a;

我想不出一种相反的情况,即复制/移动操作的源首先被破坏。我还想要一个自 C++17 以来添加的语句的示例(当所选构造函数的参数是对对象类型的右值引用时例外)

0 投票
4 回答
1855 浏览

c++ - 共享库中静态对象的销毁顺序

我有一个主程序(main.cpp)和一个共享库(test.htest.cpp):

测试.h:

测试.cpp:

主.cpp:

这就是我在 Linux 上编译这些源代码的方式:

Linux 上的输出:

当我在 Windows 上运行此示例时(经过一些调整,例如添加dllexport),我得到了 MSVS 2015/2017:

对我来说,第一个输出似乎符合标准。例如参见: http ://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf

从第 3.6.3.1 段开始:

如果具有静态存储持续时间的对象的构造函数或动态初始化的完成顺序在另一个之前,则第二个的析构函数的完成顺序在第一个的析构函数的启动之前。

也就是说,如果B对象首先被构造,它应该最后被销毁——这就是我们在 Linux 上看到的。但是 Windows 输出不同。是 MSVC 错误还是我遗漏了什么?

0 投票
0 回答
71 浏览

php - php websocket中的对象销毁

我有我的网络套接字服务器,其中包含一个包含导入对象的用户数组。

我想在导入对象的某些方法调用期间向用户发送更新。

我想这样做我需要将服务器和用户的引用传递给我的 Import 对象,但是,我担心由于我的用户和 import 对象之间的递归引用,这些 to 永远不会去当我从 Web 套接字中包含的用户列表中取消设置用户时,垃圾并导致内存泄漏。

我在每个对象上添加了一个__destruct方法来检查我的对象何时被破坏。

断开连接时取消设置用户的 Web 套接字方法:

销毁方法:

用户对象在调用 unset 时不会被破坏,但是当新用户连接到 Web 套接字时,对于被破坏用户中包含的导入对象,即使我删除了递归引用,它也不会被破坏。

控制台图像

当用户对象被销毁时,我希望我的导入对象被销毁。

0 投票
3 回答
635 浏览

unity3d - Destroying Prefabs Object After Spawn Using collision

I currently have some objects spawning from a prefab and am attempting to destroy only one of the spawned items of that prefab. I was searching online and I found tons of different examples but I have been unable to get any of them to work. I tried setting up an instance of the Instantiate and destroying that instance but I am unable to get it to work. The spawn/collision script is attached to the main camera if that matters. Collision with other items in my game work and the prefab does have a box collider set to isTrigger. Again, I know there are plenty of examples explaining this etc, but I can't get it to work and maybe I am not understanding what I actually should be doing.

Spawner code:

enter image description here

Spawner Script is on the Main Camera. Player used is the First Person Player Unity provides.

Code for destroying spawned object:

enter image description here

Destroy code is on prefab. Note prefab is not in hierarchy as it should not be.

0 投票
1 回答
420 浏览

javascript - 类函数参数函数中对象的解构值类型

所以,我们有一些功能:

我们可以用对象破坏语法重写这个函数,使它对用户价值更漂亮和简洁:

现在想象一下,用户价值必须由一些打字稿界面来描述。

应该如何内联?

像这样?

UPD。数据是通用值变量

0 投票
0 回答
43 浏览

c++ - 另一个对象生存期/范围返回的 C++ 对象引用

我目前正在研究各种“可挂载”文件格式的递归阅读器/解包器的想法。例如,它应该允许读取存储在 NTFS 目录结构中的 vmdk 文件中的压缩文件。

目前我只有这个头文件,CZipMounter.mount用于在内存中加载和预解析 zip 文件 - 这会填充文件信息的私有列表vecEntries(以及一组尚未提及的 zip 解析变量)。然后调用者调用CZipMounter.openDir,它返回迭代器对象引用(~等效于 POSIX DIR)。CZipIterator必须有权访问CZipMounter(至少我认为必须,有一个对底层文件开放的句柄,对解压缩库的句柄等)。然后调用者可以CZipIterator.readDir在while循环中调用。当 CZipIterator 实例被销毁时,它相当于 POSIX CloseDir

现在我对CZipMounter. 因为如果它过早地被销毁,所有CZipIterator实例都会有指向已经被销毁的对象的指针(或引用,IMO 无关紧要)。

基本上我可能有两个完全不同的问题:

  1. 有没有更好的方法在这里实现这种递归?我不知何故认为将所需数据从 Mounter 复制到 Iterator 不是一个好主意。
  2. 如果我的示例确实有意义,如何防止CZipMounter过早销毁(即,我想CZipMounter在所有 `CZipIterator~ 实例之后被销毁。

整个事情计划稍微复杂一些,因为会有更多的CXXXMounter类和一个虚拟CMotherOfAllMounters类。