JavaScript:访问不同类中的对象

时间:2013-10-01 01:44:50

标签: javascript javascript-objects

我有:

View1.prototype.function1 = function() {
    this.test = "Hello";
};

我想在这里打电话给测试:

View2.prototype.funcion2 = function() {
   alert(View1.test);
};

但是我得到的错误是View1不存在。

想法?

2 个答案:

答案 0 :(得分:2)

我不清楚你要做什么,以下内容可能会有所帮助(<或p>)。

ECMAScript中的一个约定是以大写字母开头的变量名是构造函数,例如

function View() {
  ...
}

要将方法添加到由其创建的所有实例共享的构造函数中,请为构造函数的原型指定一个函数:

View.prototype.f1 = function() {
    this.test = "Hello";
};

现在创建一个实例:

var view1 = new View();

并调用方法:

view1.f1();

这会调用 View.prototype.f1 并将 view1 作为值传递,因此 test 属性添加值为“Hello”:

alert(view1.test); // Hello

您无法调用 test ,因为它的值是字符串,而字符串不可调用。只有实现内部[[Call]]方法的对象(如函数或宿主方法)才可调用。

您可能正在努力进行原型继承。如果是这样,请在这里问。网上有很多文章试图解释它,但大多数都非常糟糕。

PS:Firefox似乎不喜欢“function1”作为标识符。

答案 1 :(得分:0)

View1.prototype.function1.call(View1);

View2.prototype.function2 = function() {
  alert(View1.test);
};

或将View1更改为对象。