是的, 继前一篇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

但这又有什么用? 不知道...谁能告诉我?

标签: none 阅读量: 876

添加新评论