首页 > 解决方案 > 如何在数组循环中访问原型函数

问题描述

我有以下对象结构(只是一个示例对象):

var Sample = function Sample (name)
{ this.init(name); };

Sample.prototype.init = function (name)
{ this.name_ = name; }

Sample.prototype.getName = function ()
{ return 'The name is '+this.name_; }

var obj = new Sample();
console.log ( obj.getName() );

当我做类似上面的事情时,它运行良好并在控制台中打印,因为它必须是。但是当我有一个数组集合时,我无法访问该getName()函数。举个例子:

var biblio = [];

biblio.push(new Sample('A'));
biblio.push(new Sample('B'));
biblio.push(new Sample('C'));
biblio.push(new Sample('D'));

for ( var i = 0; i < biblio.lenght; i++ )
{ console.log ( biblio[i].getName() ); }

对于上述情况,我总是得到undefined. 但是在forusign之外,类似的东西biblio[0].getName()效果很好。

如何在 for 循环中访问对象的函数?

标签: javascriptarraysprototype

解决方案


只要纠正这一点biblio.length,它就会根据你的工作!

var Sample = function Sample (name)
{ this.init(name); };

Sample.prototype.init = function (name)
{ this.name_ = name; }

Sample.prototype.getName = function ()
{ return 'The name is '+this.name_; }

var obj = new Sample();
console.log ( obj.getName() );

var biblio = [];

biblio.push(new Sample('A'));
biblio.push(new Sample('B'));
biblio.push(new Sample('C'));
biblio.push(new Sample('D'));

for ( var i = 0; i < biblio.length; i++ )
{ console.log ( biblio[i].getName() ); }


推荐阅读