当前位置: 首页 > 面试题库 >

获取类的函数(方法)

蒯宇定
2023-03-14
问题内容

我必须动态获取ES6类的属性和功能。这有可能吗?

使用for … in循环,我只能循环访问类实例的属性:

class Foo {
  constructor() {
    this.bar = "hi";
  }
  someFunc() {
    console.log(this.bar);
  }
}
var foo = new Foo();
for (var idx in foo) {
  console.log(idx);
}

输出:

bar

问题答案:

此功能将获取所有功能。是否继承,是否可枚举。包括所有功能。

function getAllFuncs(toCheck) {
    var props = [];
    var obj = toCheck;
    do {
        props = props.concat(Object.getOwnPropertyNames(obj));
    } while (obj = Object.getPrototypeOf(obj));

    return props.sort().filter(function(e, i, arr) { 
       if (e!=arr[i+1] && typeof toCheck[e] == 'function') return true;
    });
}

做测试

getAllFuncs([1,3]);

控制台输出:

["constructor", "toString", "toLocaleString", "join", "pop", "push", "concat", "reverse", "shift", "unshift", "slice", "splice", "sort", "filter", "forEach", "some", "every", "map", "indexOf", "lastIndexOf", "reduce", "reduceRight", "entries", "keys", "constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "__defineGetter__", "__lookupGetter__", "__defineSetter__", "__lookupSetter__"]

注意

它不返回通过符号定义的函数



 类似资料:
  • 我需要实现一个函数,该函数获取一个由n个元素和一个数字k组成的数组A作为输入,并返回一个包含大小为k的所有子集的数组(每个子集本身就是一个数组)。 定义函数的类型,并为函数实现至少3个测试(使用assert)。它应该是Javascript/Typescript和functional 例如:FunSubset([1,2,3],2)= 有什么想法吗?

  • 问题内容: 我觉得我应该知道这一点,但我一直无法弄清楚…… 我想从内部获取一个方法的名称(恰好是一个集成测试),以便它可以打印出一些诊断文本。当然,我可以将方法的名称硬编码在字符串中,但是如果可能的话,我想使测试更加干燥。 问题答案: 涉及通过诸如此类进行内省的答案是合理的。但是根据您的情况,可能还有另一种选择: 如果您的集成测试是使用unittest模块编写的,则可以在TestCase中使用。

  • 问题内容: 如何获得在Python中定义方法的类? 我想要以下示例打印“ ”: 问题答案:

  • 本文向大家介绍PHP实现动态获取函数参数的方法示例,包括了PHP实现动态获取函数参数的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现动态获取函数参数的方法。分享给大家供大家参考,具体如下: PHP 在用户自定义函数中支持可变数量的参数列表。其实很简单,只需使用 func_num_args() , func_get_arg() ,和 func_get_args()  函数

  • 我列出了一个有很多行的表,我想根据{transaction.to_address}值在每一行中使用一个新函数 我想在一个抓取函数中使用useeffect()函数,但是我得到了这个错误消息:渲染了比之前更多的钩子。我已经尝试了我在这里找到的许多解决方案,我已经花了几乎一整天,但我还不够聪明来修复它。 这类似于我的问题,但不适用于我 未捕获的固定冲突:渲染的钩子比上一次渲染期间更多

  • 问题内容: 我知道函数,但是我正在寻找一些易于使用的函数实现?如果它也提供了方法的类(如果确实是方法),那将是完美的。 问题答案: 该函数是了解这一点的唯一方法,如果您很懒,这是您自己编写代码的另一个原因。 对抗懒惰! :D