【问题标题】:Using pointers to functions in javascript在javascript中使用指向函数的指针
【发布时间】:2012-03-23 08:43:00
【问题描述】:

为什么我的代码只适用于 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 连接,这些连接使用不同的 URL,并且每个都返回一个我必须解析的不同 XML。 我想通过创建一个对象数组并为每个对象执行一个操作,获取 URL 并连接到它。

【问题讨论】:

  • 你打算如何在 Javascript 中获取指针?
  • 将对象或函数的引用分配给变量或数组。我和 C 语言一样。
  • 您似乎错误地认为,因为 C 有一个特性,Javascript 也必须具有该特性,忽略了 它们是两种不同的语言这一事实。事实上,Javascript没有公开指针或引用的概念。完全没有。
  • 是的,我明白这一点,我只是想看看我是否可以用 javascript 来做,不知道它是否可行。谢谢!

标签: javascript function-pointers javascript-objects


【解决方案1】:

你需要做的

var source1 = new sources[0]();

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

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

编辑: 您也可以使用sources[0] = new Object1();,但我认为这不适用于您要进行的设计(数组中的新对象)

【讨论】:

  • 是的,对不起。我是stackoverflow的新手。我尝试了 Vote Up 并说我没有足够的声望点。但它适用于“这篇文章对你有用吗?”。问候。
【解决方案2】:

因为 object1 是一个函数,所以你必须创建 object1 的一个实例。

这会起作用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多