小编kra*_*ave的帖子

什么是JavaScript中的接收器?

我在读你不懂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)

javascript

20
推荐指数
2
解决办法
2898
查看次数

为什么在 systemd 覆盖中的另一个 ExecStart=/new/value 之前使用 ExecStart= (没有值)?

我想采用 systemd 覆盖方式让 dockerd 监听端口 2376。所以我遵循了这个指令

另一方面,我想深入了解 systemd 以了解其幕后情况。所以我尝试通过以下命令检查 docker 的单元文件: systemctl cat docker.service

从命令的输出结果来看,涉及到两个文件。

  1. /lib/systemd/system/docker.service
  2. /etc/systemd/system/docker.service.d/override.conf

我相信第一个是 docker 的默认单元文件,第二个是我创建的。

我的问题是:两个文件都包含句子 -ExecStart=并且在第二个文件中包含两次,例如:

ExecStart=
ExecStart=/usr/bin/dockerd -H fd://
Run Code Online (Sandbox Code Playgroud)

ExecStart=在设置有意义的值之前是否有必要分配空ExecStart=/usr/bin/dockerd -H fd://

我将这篇文章分为两个问题,另一个问题在这里

systemd

9
推荐指数
1
解决办法
5956
查看次数

交叉口观察者不能使用位置:固定的目标

我试图通过交集观察者调用回调.

我想要的targetstyle: "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)

javascript intersection-observer

8
推荐指数
1
解决办法
1446
查看次数

这个片段中的内容是什么?

我正在阅读你不知道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;          // true
Run Code Online (Sandbox Code Playgroud)

似乎函数Symbol.species …

javascript symbols

6
推荐指数
1
解决办法
101
查看次数

Uint8Array 有什么好处或用例?

Unit8Array 是一个类型数组,表示 8 位无符号整数的数组。

这是我从 MDN 学到的。但为什么我们要专门使用Unit8Array呢?为什么不使用普通数组来代替呢?为什么Unit8Array经常与二进制数据相关?

javascript binary blob

5
推荐指数
1
解决办法
1083
查看次数

无法理解有关ES6解构的这个片段

我正在阅读你不知道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)

javascript ecmascript-6

4
推荐指数
2
解决办法
287
查看次数

如何在while循环中使用提取

我的代码是这样的:

var trueOrFalse = true;
while(trueOrFalse){
    fetch('some/address').then(){
        if(someCondition){
            trueOrFalse = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我无法发出获取请求。看起来,虽然while循环将许多获取调度到下一个滴答中。但是千万不要跳到下一个刻度。我该如何解决这个问题?

javascript ecmascript-6

4
推荐指数
2
解决办法
6340
查看次数

dockerd 命令中开关 --containerd 的用途是什么?

如果我运行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 守护进程。

先感谢您。

docker docker-daemon

4
推荐指数
1
解决办法
4641
查看次数

如何以数组作为参数来新建WeakMap?

我一直在阅读有关 WeakMap 的 MDN 文档。它提到了语法:

new WeakMap([iterable])

但是当我尝试这样做时,出现了错误:

var arr = [{a:1}];
var wm1 = new WeakMap(arr);
Run Code Online (Sandbox Code Playgroud)

未捕获的类型错误:用作弱映射键的值无效

您能为我提供一个有关如何通过数组执行此操作的示例吗?

javascript weakmap

3
推荐指数
1
解决办法
2658
查看次数

如何使用 fetch API 取回数组?

我有一个 API,它将返回一个数组给我。我尝试使用 fetch API 来取回数组。我知道如果我使用 fetch 获取一些数据,响应中的真实主体是 ReadableStream。我通常对付它通过response.json()then功能,如果数据是JSON。我不知道的是如何处理数组数据?

javascript fetch-api

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