Javascript 试图确定“的含义”;event.target.contains===this.node";
我正在做一些React的东西,我找到了与我工作相关的代码笔。通过查看他们的源代码,他们使用了一些我不熟悉的语法 具体来说,_handleClick函数中的这一行让我感到困惑:Javascript 试图确定“的含义”;event.target.contains===this.node";,javascript,nodes,Javascript,Nodes,我正在做一些React的东西,我找到了与我工作相关的代码笔。通过查看他们的源代码,他们使用了一些我不熟悉的语法 具体来说,_handleClick函数中的这一行让我感到困惑: const wasOutside = !(event.target.contains === this.root); 在代码上下文中,检查用户是否在右键单击生成的上下文菜单之外单击。我知道它在做什么,但我不清楚它是怎么做的。我曾试图查找event.target.contains上的文档,但运气不佳 以下是我认为正在发生的
const wasOutside = !(event.target.contains === this.root);
在代码上下文中,检查用户是否在右键单击生成的上下文菜单之外单击。我知道它在做什么,但我不清楚它是怎么做的。我曾试图查找event.target.contains上的文档,但运气不佳
以下是我认为正在发生的事情。Event.target为我提供了一个节点位置。This.root也是dom上的一个节点位置。我认为event.target.contains与node.contains相同,但根据我对的读取,我认为node.contains只能返回布尔值true或false,并且需要某种参数?就我所知,除了true之外,wasOutside没有任何其他值,并且这段代码是不必要的。这准确吗?我是否遗漏了某些内容,或者解释不正确?event.target.contains返回值甚至不是布尔值,它返回函数本身,所以我看不出这样的代码有任何意义。。。它永远不会变成真的,我也不明白。应该是
!event.target.contains(this.root)
捕捉得很好--我没有注意到这不是一个实际的函数调用。比较总是失败,所以它总是将waswouter
设置为true
@Barmar,这就是我想要确认的。仅仅因为我认为某些事情是不正确的,并不意味着它是正确的。很高兴在我成为Dunning Kruger效应的牺牲品之前得到第二个意见,并忽略我不熟悉的东西。event.target.contains返回值甚至不是布尔值,它返回函数本身,所以我认为这样的代码没有任何意义。。。它永远不会变成真的,我也不明白。应该是!event.target.contains(this.root)
捕捉得很好--我没有注意到这不是一个实际的函数调用。比较总是失败,所以它总是将waswouter
设置为true
@Barmar,这就是我想要确认的。仅仅因为我认为某些事情是不正确的,并不意味着它是正确的。在我成为Dunning Kruger效应的牺牲品并抛弃一些我不熟悉的东西之前,获得第二个意见是很好的。