Javascript属性键-函数
Javascript property key - function
在以下示例中:
var tester = Object.create(null);
tester.forename = "Bob";
tester[function () { return "surname"; }] = "Jones";
javascript只是将函数定义转换为字符串用作属性键吗?
javascript只是将函数定义转换为字符串用作属性键吗?
是的。请注意,字符串将而不是为"surname"
。事实上,到目前为止,它还没有指定字符串将是什么,而且它因引擎而异。在某些引擎上,它将大致与源中的内容相同。但是它是"dunno, some function"
是完全有效的(例如,在规范内)。下一个规范ES6可能会说,对于Function#toString
:
返回此对象的依赖于实现的String源代码表示。这表示具有FunctionDeclarationFunctionExpression、GeneratorDeclaration的语法,GeneratorExpession、ClassDeclaration,ClassExpression和ArrowFunction或MethodDefinition生成器方法取决于物体的实际特性。特别是白色空间的使用和放置,线条表示字符串中的字符串、终止符和分号取决于实现。
(这是2014年1月的措辞。)
但这是下一个规范,它还不是最终规范,随着规范接近完成,可能会发生一些变化(尤其是关于本机函数)。根据目前的规范,Function#toString
可以返回任何它喜欢的东西,并且它不需要因函数而异。
是。对象的属性名称始终是字符串。
如果您尝试使用不同的类型,它将被强制转换为字符串。
如果您希望它们是其他类型,可以使用ES6 Map
。
相关文章:
- 从嵌套函数访问函数属性
- Javascript嵌套函数属性继承
- Javascript-在全局作用域中调用本地函数/属性
- 正在重置原型对象的构造函数属性
- javascript函数属性设置器中的延迟
- jQuery插件返回this.each并为每个对象添加函数属性
- 从函数属性访问对象属性;不适用于Firefox
- 当使用“”创建时保留函数属性;绑定”;
- 在多个(html)元素上循环执行相同的JavaScript函数属性更改
- 如何将新的构造函数属性推送到数组
- 通过构造函数属性和运算符实例设置继承
- 角度表达式无法使用构造函数属性分辨变量类型
- 为什么要在函数定义之外引用静态变量(函数属性)
- Javascript“构造函数”属性中的错误 - IE 8
- 为什么浏览器支持对象的隐式函数属性
- 构造函数属性值应该是什么 .a 原型构造函数或对象构造函数本身
- 使用模块模式调用函数属性
- React 组件流类型检查中的可选函数属性失败
- 是否可以在 javascript 中的对象文字上定义函数属性
- JavaScript:如何捕获对象的任何缺失函数/属性