javascript - 在javascript中将函数作为参数传递,未定义错误

标签 javascript node.js

我有一个函数,它是名为 server 的对象的一部分,即 server.log 是我用来记录数据的函数。尽管我希望 server.log 可用于其他文件中的函数,但我不想将服务器的其他属性传递给其他函数。

function test() {
    testingThis(server.log);
}

function testingThis(logf) {
    logf("test123");
}

我收到一条错误消息

Cannot read property 'emit' of undefined

我正在使用 happy 控制台模块来记录(server.log 在测试功能中工作正常)。

最佳答案

大概server.log期望this引用server。但是,在调用函数的方式中,this 引用全局对象或undefined(严格模式下)。

Bind 服务器的函数:

testingThis(server.log.bind(server));

另请参阅How to access the correct `this` context inside a callback? .

关于javascript - 在javascript中将函数作为参数传递,未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31597311/

相关文章:

javascript - 当他在父元素之外时停止移动元素

node.js - 网络代理阻止socket.io

javascript - 命令参数未运行我的其余代码

node.js - 在 NodeJS 中使用 multipart/form-data 进行 POST

javascript - 将隐藏的溢出内容添加到新容器

javascript - 添加 CSS 类不被浏览器渲染

javascript - Select2 更改删除的 id 值

java - 是否可以将 JavaScript 变量传递给 Scriptlet 内的 Java 代码

javascript - 将 ejs 变量转换为 javascript 变量

mysql - 无法访问 Docker 容器内的 SQL 数据库