JS可以使用Object作为函数名?
是的, 继前一篇JS可以使用字符串做函数名之后, 又可以使用object做函数名了. 事实上, 它还能使用Number, Boolean, Symbol(ES6)做函数名.
秘诀其实是对象的key可以这么做. 你可以使用字符串, number,boolean, symbol, object做key.
而你又知道所有的全局变量其实都是window(node下是global)的子元素, 所以你可以这么定义:
obj = {x:1}
window[obj] = function(){console.log('obj')}
window[obj]() // 输出 'obj'
window[true] = function(){console.log('true')}
window[1] = function(){console.log('1')}
s = Symbol()
window[s] = function(){console.log('s')}
window[true]() // 输出true
window[1]() //输出 1
window[s]() //输出 s
但这又有什么用? 不知道...谁能告诉我?