如果对象存在,则调用方法的 Javascript 速记

标签 javascript object methods logical-operators shorthand

我有一个变量,如果该变量是一个对象,我想在该对象上调用一个方法,如果不是,我什么也不想做。

我想知道是否有任何理由不应该这样做。

var foo = null;

  ////////////////////////////////////////////////
  // some code that could change foo to a object
  ////////////////////////////////////////////////

 foo && foo.bar();

最佳答案

使用 ES6,您可以组合 optional chaining operatorcall :

foo?.bar?.call()
如果要传递参数,请记住 call 中的第一个分配 this在函数调用中

var foo = {
  bar: function(x) { return x; }
};

first.value  = foo?.bar?.call(0,42); // 42
second.value = foo?.baz?.call(0,42); // undefined, no error
<input id="first">
<input id="second">

关于如果对象存在,则调用方法的 Javascript 速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38644222/

相关文章:

javascript - AngularJS - 单选按钮不更新模型

javascript - Node Socket.io 对象问题

具有多个选择器的 jQuery 自定义函数

java - 在Java中调用获取时间的方法

Javascript循环变量一开始是正确的,但后来发生了变化

javascript - JQuery 选择器生成器?

oop - Golang,调用 parent 的方法

java - 通过继承改变方法参数

java - 尝试调用方法时出错

javascript - 函数名, "onButtonClick"或 "onClickButton"