小编Mer*_*tce的帖子

替代(或相同?)作为JavaScript原型

我想了解javascript中的原型.例如:

1)

var MyObject = function() {
    this.a = "a";
    return this;
}

MyObject.prototype.fn = function() {console.log('1');}


var obj1 = new MyObject1();
Run Code Online (Sandbox Code Playgroud)

2)

var MyObject = function() {
    this.a = "a";
    this.fn = function() {console.log('1');}
    return this;
}

var obj2 = new Object2();
Run Code Online (Sandbox Code Playgroud)

我得到obj1obj2一样.所以,我在2)做的也是原型?或不?我对原型缺少什么?

javascript prototype

7
推荐指数
1
解决办法
1439
查看次数

如何在不受系统时间变化影响的情况下测量经过的时间

我想以秒为单位测量经过的时间。用std::chrono::steady_clock我做。然而,它受到系统时间变化的影响。

稳定时钟不应该不受系统时间变化的影响吗?

我怎样才能做到这一点?

这是代码:

#include <iostream>
#include <chrono>
#include <time.h>

std::chrono::steady_clock::time_point t = std::chrono::steady_clock::now();

/* Change system time */
std::time_t tnow = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
tnow -= 20;
std::cout << "stime: " << stime(&tnow) << std::endl;
/********************************************************/

sleep(5);
std::chrono::steady_clock::time_point t2 = std::chrono::steady_clock::now();
std::cout << "ELAPSED: " << std::chrono::duration_cast<std::chrono::seconds>(t2-t).count() << std::endl;
Run Code Online (Sandbox Code Playgroud)

结果如下:

stime: 0
ELAPSED: -15
Run Code Online (Sandbox Code Playgroud)

我想得到的是:

ELAPSED: 5
Run Code Online (Sandbox Code Playgroud)

编辑:

我添加了 C 标签,因为它似乎是一个内核(或板的构建根)错误。那么,如果没有,我怎么能做到这一点chrono?我的意思是,直接(无需观看系统时间更改)。

人们在chrono之前是如何生活的?

c++ c++-chrono

7
推荐指数
1
解决办法
205
查看次数

我怎样才能保证调用 websocket onopen

WebSocketjavascript. WebSocket需要 url 作为构造函数参数并立即尝试连接。我onopen只能在构造方法后设置方法。

所以,如果WebSocket在我设置之前已经建立了连接onopen,那么我会错过onopen事件!

我怎样才能避免这种情况?

要模拟它:

一种)

1) 在 Chrome 中,打开websocket。2) 按 F12 打开开发者工具。3) 打开控制台 4) 一次复制并粘贴所有这些代码!进入!

uri = "ws://echo.websocket.org?encoding=text";
websocket = new WebSocket(uri);
websocket.onopen = function(evt) { console.log('EHE')};
Run Code Online (Sandbox Code Playgroud)

乙)

重复 1-2-3

4)复制并粘贴这些代码并运行

uri = "ws://echo.websocket.org?encoding=text";
websocket = new WebSocket(uri);
Run Code Online (Sandbox Code Playgroud)

5)等一下

6) 运行此代码:

websocket.onopen = function(evt) { console.log('EHE')};
Run Code Online (Sandbox Code Playgroud)

结果:

在 A) 中调用 onopen。在 B)我们错过了!

javascript websocket

2
推荐指数
1
解决办法
1753
查看次数

标签 统计

javascript ×2

c++ ×1

c++-chrono ×1

prototype ×1

websocket ×1