我想了解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)
我得到obj1和obj2一样.所以,我在2)做的也是原型?或不?我对原型缺少什么?
我想以秒为单位测量经过的时间。用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之前是如何生活的?
我WebSocket
在javascript
. 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)我们错过了!