相关疑难解决方法(0)

ECMAScript 6类析构函数

我知道ECMAScript 6有构造函数,但ECMAScript 6的析构函数是否存在?

例如,如果我将一些对象的方法注册为构造函数中的事件侦听器,我想在删除对象时删除它们.

一种解决方案是desctructor为每个需要此类行为的类创建方法并手动调用它.这将删除对事件处理程序的引用,因此我的对象将真正准备好进行垃圾回收.否则它会因为那些方法而留在记忆中.

但是我希望ECMAScript 6能够在对象被垃圾收集之前调用本机.

如果没有这样的机制,这种问题的模式/惯例是什么?

javascript ecmascript-6

52
推荐指数
5
解决办法
7万
查看次数

什么时候JavaScript对象被破坏?

在C++中,我可以显式定义构造函数和析构函数,然后在构造函数/析构函数中使用cout <<"C或D Called"来确切知道在哪里.

但是在JavaScript中如何知道对象何时被破坏.以下示例是关注我的案例.

我在超时时调用内部函数,我想知道只要定时器正在运行,对象就会保持活动状态,等待再次调用next.

用户点击呼叫控制

// Calls  Control
Run Code Online (Sandbox Code Playgroud)

控制呼叫消息

var message_object = new Message( response_element );
Run Code Online (Sandbox Code Playgroud)

消息调用效果

new Effects().fade( this.element, 'down', 4000 );
message_object.display( 'empty' );
Run Code Online (Sandbox Code Playgroud)

效果

/**
 *Effects - build out as needed
 *  element - holds the element to fade
 *  direction - determines which way to fade the element
 *  max_time - length of the fade
 */

var Effects = function(  ) 
{
    this.fade = function( element, direction, max_time ) 
    {
        element.elapsed = 0;
        clearTimeout( element.timeout_id …
Run Code Online (Sandbox Code Playgroud)

javascript

25
推荐指数
2
解决办法
2万
查看次数

JavaScript对象的终结器

假设我有一些asm.js代码,可能是由emscripten创建的.假设它有一些相当大的堆分配结构,它由asm.js函数返回,作为一个指针,由一些JavaScript库拾取,包装在一个漂亮的JavaScript对象中.好到目前为止.

但是,如果该对象超出范围并被垃圾收集,会发生什么.现在,asm.js代码无法知道这一点,因此结构的内存将保持分配状态,从而导致内存泄漏.

有没有办法从JavaScript中向JavaScript对象添加终结器?

这样的终结器可用于释放asm.js中的内存,从而避免内存泄漏.到目前为止,我找不到一个记录在案的便携式方法来实现这一点,但也许我一直在寻找错误的地方.

javascript memory-management finalizer asm.js

11
推荐指数
1
解决办法
3711
查看次数