JavaScript 函数名的三进制?
JavaScript Ternary for function names?
我遇到过多次基于二进制情况调用函数的情况,而三进制可以正常工作:
buttonPressed ? files.audio.current.play() : files.audio.current.stop()
但是看到那些额外浪费的代码了吗?有没有办法做更像的事情:
files.audio.current.(buttonPressed ? play : stop)()
使用方括号表示法,return函数名作为三进制字符串:
files.audio.current[buttonPressed ? 'play' : 'stop']()
稍微扩展一下 Ori Drori 的回答:
在 JavaScript 中,函数等同于对象上的字段。
因此在像这样的 js 对象中:
var person = {
name: "Steve",
sayHello: function() {
alert("Hello!");
}
}
person.name
和 person['name']
都是引用名称字段的有效方式。
因此,sayHello
方法可以由 person.sayHello()
或 person['sayHello']()
调用
为了巩固您的理解,请尝试 person['sayHello']
并查看返回的内容!
希望对您有所帮助!
我遇到过多次基于二进制情况调用函数的情况,而三进制可以正常工作:
buttonPressed ? files.audio.current.play() : files.audio.current.stop()
但是看到那些额外浪费的代码了吗?有没有办法做更像的事情:
files.audio.current.(buttonPressed ? play : stop)()
使用方括号表示法,return函数名作为三进制字符串:
files.audio.current[buttonPressed ? 'play' : 'stop']()
稍微扩展一下 Ori Drori 的回答:
在 JavaScript 中,函数等同于对象上的字段。
因此在像这样的 js 对象中:
var person = {
name: "Steve",
sayHello: function() {
alert("Hello!");
}
}
person.name
和 person['name']
都是引用名称字段的有效方式。
因此,sayHello
方法可以由 person.sayHello()
或 person['sayHello']()
为了巩固您的理解,请尝试 person['sayHello']
并查看返回的内容!
希望对您有所帮助!