我在读你不懂JS:ES6&Beyond.我发现了一些混淆的措辞
我们将一个get(..)处理程序声明为处理程序对象上的命名方法(Proxy(..)的第二个参数),它接收对目标对象(obj)的引用,键属性名称("a"),和自我/接收器/代理(pobj).
我的问题是接收器意味着什么,它的名字来自哪里?
好像我有一个带有成员函数的对象跳转:
var a = { jump: function(){console.log('jump!')} };
Run Code Online (Sandbox Code Playgroud)
如果我跑,a.jump();那么a是接收器.
它是那样的吗?如果我错了,请纠正我.非常感谢!
对于阅读同一本书的人,当您进入 Proxy First,Proxy Last部分时,您可以在代码中添加一行,以便更清楚地了解get陷阱中的上下文.
var handlers = {
get(target,key,context) {
console.log(greeter === context); //true, this line added
return function() {
context.speak(key + "!");
};
}
},
catchall = new Proxy( {}, handlers ),
greeter = {
speak(who = "someone") {
console.log( "hello", who );
}
};
// setup `greeter` to fall back to `catchall`
Object.setPrototypeOf( greeter, catchall );
greeter.speak(); // hello …Run Code Online (Sandbox Code Playgroud) 我想采用 systemd 覆盖方式让 dockerd 监听端口 2376。所以我遵循了这个指令。
另一方面,我想深入了解 systemd 以了解其幕后情况。所以我尝试通过以下命令检查 docker 的单元文件:
systemctl cat docker.service
从命令的输出结果来看,涉及到两个文件。
我相信第一个是 docker 的默认单元文件,第二个是我创建的。
我的问题是:两个文件都包含句子 -ExecStart=并且在第二个文件中包含两次,例如:
ExecStart=
ExecStart=/usr/bin/dockerd -H fd://
Run Code Online (Sandbox Code Playgroud)
ExecStart=在设置有意义的值之前是否有必要分配空ExecStart=/usr/bin/dockerd -H fd://?
我将这篇文章分为两个问题,另一个问题在这里。
我试图通过交集观察者调用回调.
我想要的target是style: "position: fixed",并通过移动它
style.top.
我还指定了根元素,它是目标的祖先style: "position: relative".
但是当目标和观察者相交时,不会触发回调函数.
我错过了一些限制吗?
这是我输入的内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IO</title>
</head>
<body>
<div style="height: 200px;width: 100%;background: violet" class="upper">aaa</div>
<div style="position:relative;height: 200px;width: 100%;background: blueviolet" id="middle">bbb
<div id="target" style="position:fixed;top: 0px;width: 50px;height: 50px;background: firebrick">ccc</div>
</div>
<script>
let options = {
root: document.getElementById("middle"),
rootMargin: '0px',
threshold: 0
};
let observer = new IntersectionObserver(entry => {
console.log("observer's acting.")
}, options);
let target = document.getElementById("target");
observer.observe(target);
let stepping = 0; …Run Code Online (Sandbox Code Playgroud) 我正在阅读你不知道JS:ES6&Beyond,我在Symbol.species部分遇到了这个片段.
class Cool {
// defer `@@species` to derived constructor
static get [Symbol.species]() { return this; }
again() {
return new this.constructor[Symbol.species]();
}
}
class Fun extends Cool {}
class Awesome extends Cool {
// force `@@species` to be parent constructor
static get [Symbol.species]() { return Cool; }
}
var a = new Fun(),
b = new Awesome(),
c = a.again(),
d = b.again();
c instanceof Fun; // true
d instanceof Awesome; // false
d instanceof Cool; // trueRun Code Online (Sandbox Code Playgroud)
似乎函数Symbol.species …
Unit8Array 是一个类型数组,表示 8 位无符号整数的数组。
这是我从 MDN 学到的。但为什么我们要专门使用Unit8Array呢?为什么不使用普通数组来代替呢?为什么Unit8Array经常与二进制数据相关?
我正在阅读你不知道JS系列的最新版本,当它进入解构部分时完全丢失.请帮我理解这里的片段.这里的上下文将使一些指定的配置生效,而其他默认值仍然可用.
默认值:
var defaults = {
options: {
remove: true,
enable: false,
instance: {}
},
log: {
warn: true,
error: true
}
};
Run Code Online (Sandbox Code Playgroud)
配置:
var config = {
options: {
remove: false,
instance: null
}
};
Run Code Online (Sandbox Code Playgroud)
作者是如何完成的
config.options = config.options || {};
config.log = config.log || {};
({
options: {
remove: config.options.remove = defaults.options.remove,
enable: config.options.enable = defaults.options.enable,
instance: config.options.instance =
defaults.options.instance
} = {},
log: {
warn: config.log.warn = defaults.log.warn,
error: config.log.error = defaults.log.error
} …Run Code Online (Sandbox Code Playgroud) 我的代码是这样的:
var trueOrFalse = true;
while(trueOrFalse){
fetch('some/address').then(){
if(someCondition){
trueOrFalse = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我无法发出获取请求。看起来,虽然while循环将许多获取调度到下一个滴答中。但是千万不要跳到下一个刻度。我该如何解决这个问题?
如果我运行systemctl cat docker.service查看docker.service的unit文件,
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock可以在docker默认的unit文件中找到。
我的问题是切换的目的是什么
--containerd=/run/containerd/containerd.sock?
根据这个问题的答案,如果我为 docker.service 生成一个覆盖文件,内容为:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd://
Run Code Online (Sandbox Code Playgroud)
有效的配置是:
[Service]
ExecStart=/usr/bin/dockerd -H fd://
Run Code Online (Sandbox Code Playgroud)
并将--containerd=/run/containerd/containerd.sock被省略。
那么这样的配置会导致什么情况呢?我希望docker能够在启用TLS保护的情况下在本地和远程正常工作。我还需要通过 ssh 调用 docker 守护进程。
先感谢您。
我一直在阅读有关 WeakMap 的 MDN 文档。它提到了语法:
new WeakMap([iterable])
但是当我尝试这样做时,出现了错误:
var arr = [{a:1}];
var wm1 = new WeakMap(arr);
Run Code Online (Sandbox Code Playgroud)
未捕获的类型错误:用作弱映射键的值无效
您能为我提供一个有关如何通过数组执行此操作的示例吗?
我有一个 API,它将返回一个数组给我。我尝试使用 fetch API 来取回数组。我知道如果我使用 fetch 获取一些数据,响应中的真实主体是 ReadableStream。我通常对付它通过response.json()在then功能,如果数据是JSON。我不知道的是如何处理数组数据?
javascript ×8
ecmascript-6 ×2
binary ×1
blob ×1
docker ×1
fetch-api ×1
symbols ×1
systemd ×1
weakmap ×1