2013-07-29 55 views
4

我对JavaScript有点新,我开始对某些基础知识有所了解,事情是我正在尝试为对象创建原型,然后创建对象的引用数组,然后accesing他们的方法,但我错了地方谁能帮助我这个问题,我在做什么如下所示: -Javascript中的基本原型问题

function Obj(n){ 
    var name=n; 
} 
Obj.prototype.disp = function(){ 
    alert(this.name); 
}; 
var l1=new Obj("one"); 
var l2=new Obj("two"); 
var lessons=[l1,l2]; 
//lessons[0].disp(); 
//alert(lessons[0].name); 

但没有这些方法似乎摸出.... :(

回答

6

您不分配Obj对象的属性,但只是在构造函数中有一个局部变量,如下所示:

function Obj(n){ 
    this.name = n; 
} 

Example Fiddle

+0

您发布相同的解决方案我:)之前7秒+1 – Mangiucugna

6

你的问题出在构造函数时,分配参数给本地变量而不是一个字段变量,改变它想:

function Obj(n){ 
    this.name=n; 
} 

希望这有助于

+1

非常感谢我完全忘记了,它的工作原理非常感谢你 – DeadMan

+1

@ user1860959如果答案解决您的问题,将其标记点击旁边的复选标记(左上角)。 – Sirko

1

使用这个:

function Obj(n){ 
     this.name=n; 
    } 

原因:和this.name=n;

差分之间var name=n;变种名称= N;

var声明的变量对构造函数是本地的。如果在对象内部使用某种方法,它将仅存在于构造函数调用之外

this.name = n;

这是对象的属性,只要对象有效,它就会存活下来,而不管它是否被使用。

例子:this in javascript