javascript - 这是什么类型的 Javascript 函数?

标签 javascript function position call

这究竟是一种什么样的 Javascript 函数,我该如何使用它?

position = this[this.options.position]();

我查过 .call(),但几乎没有任何内容与 Javascript 的这种奇怪用法有关。

谢谢。

最佳答案

它不是一个函数,它是一个函数调用。该表达式在 this 引用的对象上查找由 this.options.position 命名的属性,然后调用该属性值引用的函数。因此,例如,如果 this.options.position 包含字符串 "one",那么它就像执行 position = this.one()

例子:

var obj = {
  options: {},
  one: function() {
    console.log("This is function one");
    return 1;
  },
  two: function() {
    console.log("This is function two");
    return 2;
  },
  example: function() {
    var position = this[this.options.position]();
    console.log(position);
  }
}

obj.options.position = "one";
obj.example();

obj.options.position = "two";
obj.example();

关于javascript - 这是什么类型的 Javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285274/

相关文章:

Javascript函数问题

php - 递归函数,仅显示父级、子级和兄弟级的动态菜单

javascript - 从 TaffyDB 输出数据

javascript - Grails 中的自动过滤列表

php - php 中定义的变量和数组与函数

css - IE8 - 隐藏 CSS 溢出,修复导致 jquery 的进一步问题

mysql - 查找字符串中数字的位置

html - 无法输入 <input> 标签

javascript - 在 JavaScript 中将数字转换为阿拉伯字母

javascript - 移动设备中禁用的子菜单 "mouseover"