javascript - console.log 返回一个额外的未定义

标签 javascript

我试图理解.bind并编写了以下代码:

一个简单的对象:

person = {
    name:"Joe",
    surname:"Something",
    tool:"gun",
    action: function(){
        console.log("shoot my wife");
    }
}

一个函数:

function police(){
    console.log("You are under arrest, " + this.name + " " + this.surname);
}

并将 person 对象绑定(bind)到警察功能

var newPolice = police.bind(person);

最后我控制台记录它:

console.log( newPolice() );

我确实得到了所需的字符串(“你被捕了,Joe Something”),但我也得到了一个未定义的字符串,我不知道它来自哪里。 (在代码中,是console.log(newPolice())生成了未定义的内容)

最佳答案

这与bind无关。

当您调用 newPolice() 时,它会记录以下结果:

console.log("You are under arrest, " + this.name + " " + this.surname);

当您调用 console.log( newPolice() ); 时,您现在有两个 console.log 语句,它们之间,日志:

  • 和以前一样
  • newPolice的返回值

newPolice 没有 return 语句,因此它返回 undefined

关于javascript - console.log 返回一个额外的未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34974308/

相关文章:

javascript - Onselectedindexchanged 有时确实会被解雇

javascript - 在 JavaScript/JQuery 中获取调用者的 ID

javascript - 在外部 js 文件中使用 javascript 库?

javascript - 通过视口(viewport)检测到 div 时的动画效果

javascript - Angularjs 将 json 响应合并为一个

javascript - 在 JavaScript 中打印树

javascript - 可以访问我的对象的属性但不能访问函数

javascript - 滚动时垂直全高 div 之间的动画切换

javascript - Google map api v3 从数组添加折线

javascript - 使用 JS 在 Caesars Cypher 中循环