gpt4 book ai didi

javascript - 功能分配不起作用

转载 作者:行者123 更新时间:2023-11-30 10:03:05 25 4
gpt4 key购买 nike

我是 Node.js 新手。我搜索了论坛,但找不到类似的问题。这是我遇到的问题。以下代码运行良好。

process.stdout.write("hello world!\n");

但是下面的代码:

var myprint = process.stdout.write;
myprint("hello world");

会产生以下错误:

TypeError: Cannot read property 'defaultEncoding' of undefined

有什么建议吗?太感谢了。

最佳答案

可能需要使用正确的对象引用调用 write() 方法,以便 write() 方法知道它正在写入哪个流。有多种方法可以解决此问题。这是一种方法:

var myprint = process.stdout.write.bind(process.stdout);
myprint("hello world");

参见 .bind() on MDN了解更多信息。

为了将来引用,当您这样做时:

var myprint = process.stdout.write;

myprint 只包含对 write 方法的引用,然后在没有对象引用的情况下调用该方法。这意味着 write() 方法中的 this 指针将不会像您将它称为 process.stdout.write( )。如果一个方法需要它的实例数据(大多数方法都需要),那么这就会产生问题。您可以使用 .bind() 将对象引用“绑定(bind)”到一个新的临时函数,这允许您将它分配给另一个变量,然后像您尝试的那样直接使用它。

关于javascript - 功能分配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com