为什么我的代码仅适用于object2?

function object1() {
    this.URL = "yahoo.com";
    this.getURL = function() { return this.URL; };
}

var object2 = new Object();
object2.URL = "gmail.com";
object2.getURL = function() { return this.URL; };

var sources = new Array();
sources[0] = object1;
sources[1] = object2;
i=0;

var source1 = sources[0];
console.log(source1.getURL());

var source2 = sources[1];
console.log(source2.getURL());


如果我尝试从object1中获取URL,则会出现此错误:
TypeError:source1.getURL不是函数

我正在尝试处理多个HTTP连接,这些HTTP连接使用不同的URL,每个HTTP连接都返回我必须解析的不同XML。
我想通过创建一个对象数组并为每个对象做一个,获取URL并连接到它来做到这一点。

最佳答案

你需要做

var source1 = new sources[0]();


为了实例化一个新对象1。

否则,source1指向没有getURL这样的成员的函数对象

编辑:
您也可以执行sources[0] = new Object1();,但我认为这与您要进行的设计不能很好地配合使用(数组中的新对象)

关于javascript - 使用指向JavaScript中函数的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9574073/

10-12 12:55