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

您如何在javascript中重载[]运算符

越风史
2023-03-14
问题内容

我似乎找不到在JavaScript中重载[]运算符的方法。外面有人知道吗?

我在想…

MyClass.operator.lookup(index)
{
     return myArray[index];
}

还是我没有看正确的东西。


问题答案:

您可以使用ES6代理(在所有现代浏览器中都可用)进行此操作

var handler = {
    get: function(target, name) {
        return "Hello, " + name;
    }
};
var proxy = new Proxy({}, handler);

console.log(proxy.world); // output: Hello, world


 类似资料:
  • 问题内容: 我已经使用JavaScript了几天,现在我想为定义的对象重载运算符。 在Google搜索了一段时间后,您似乎无法正式执行此操作,但是仍有一些人声称采取了一些漫长的方法来执行此操作。 基本上,我制作了Vector2类,并希望能够执行以下操作: 相反,我必须这样做: 我可以采用什么方法在Vector2类中重载运算符?因为这看起来很丑陋。 问题答案: 如您所见,JavaScript不支持运

  • 问题内容: 给定以下JavaScript“类”定义,这是我想到此问题的最佳方式: 以及以下测试设置代码: 有什么方法可以使用加法运算符隐式创建为对象,如下所示… 而不是求助于… 如果不是,那么在此领域中关于通过算术运算符使自定义数字JavaScript对象可组合的最佳实践建议是什么? 问题答案: 据我所知,JavaScript(至少现在已经存在)不支持运算符重载。 我能建议的最好的方法是使用一个类

  • 问题内容: 如何在Python中模拟赋值运算符重载?例如… 除了执行self.name.value = name之外,还可以如何模拟赋值运算符的重载,以便在执行self.name = myname时将myname分配给self.name.value? 问题答案: 我最终创建了一个名为ModelMeta的Model元类,该元类注册了类型化的属性。 参见http://github.com/espeed

  • 本文向大家介绍Javascript实现运算符重载详解,包括了Javascript实现运算符重载详解的使用技巧和注意事项,需要的朋友参考一下 最近要做数据处理,自定义了一些数据结构,比如Mat,Vector,Point之类的,对于加减乘除之类的四则运算还要重复定义,代码显得不是很直观,javascript没有运算符重载这个像C++、C#之类的功能的确令人不爽,于是想“曲线救国”,自动将翻译代码实现运

  • Rust可以让我们对某些运算符进行重载,这其中大部分的重载都是对std::ops下的trait进行重载而实现的。 重载加法 我们现在来实现一个只支持加法的阉割版复数: use std::ops::Add; #[derive(Debug)] struct Complex { a: f64, b: f64, } impl Add for Complex { type Outpu

  • 问题内容: 我正在查看Mozilla的代码,该代码向Array添加了一个过滤器方法,并且其中的一行代码使我感到困惑。 我从未见过>>>在JavaScript中使用过。 这是什么,它做什么? 问题答案: 它不仅将非数字转换为数字,还将其转换为可以表示为32位无符号整数的数字。 虽然JavaScript的数字是双精度浮点(*),位运算符(,,,和)在对32位整数运算的定义。进行按位运算会将数字转换为3