我正在使用JavaScript测试VbScript API。 VbScript API的一部分有一个构造,我必须假设它是一个可以读写的数组。我没有VbScript API的源代码,也没有访问它暂时运行的系统。在我的JavaScript测试代码中,它模拟了myObj和myFunc,因为我把它作为一个函数嘲笑,所以赋值会抛出一个错误,这并不奇怪。
myObj.myFunc("xyz") = 1
模拟数组不起作用,因为JavaScript使用[]作为访问器。 一种解决方案是使用JavaScript包装对myFunc的调用,但我想知道是否有更巧妙的解决方案,JavaScript是一种柔韧的语言。
我想我已经在这里回答了我自己的问题......我只需要设置并读取一个值,这就是为什么它还没有被包装并作为一个数组进行模拟。答案是继续进行包装。
谢谢, 麦克
答案 0 :(得分:0)
这个怎么样?
myObj.setValue("xyz", 1);
尝试模拟另一种语言的语法真的没有意义。
答案 1 :(得分:0)
我并不完全理解这个问题,但是如果你正在尝试创建一个可以使用该格式设置数组元素的JS构造,那很容易
Array.prototype.setValue = function(key,value) {
this[key]=value;
};