在javascript中使用指向函数的指针

Don*_*ues 0 javascript function-pointers javascript-objects

为什么我的代码只适用于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());
Run Code Online (Sandbox Code Playgroud)

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

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

Dam*_*amp 5

你需要这样做

var source1 = new sources[0]();
Run Code Online (Sandbox Code Playgroud)

为了实例化一个新的object1.

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

编辑:你也可以这样做,sources[0] = new Object1();但我认为这对你想要的设计不适用(数组中的新对象)