首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript: TypeError:不是构造函数

Javascript: TypeError:不是构造函数
EN

Stack Overflow用户
提问于 2013-02-22 01:39:12
回答 1查看 85.9K关注 0票数 16

我有一个TypeError问题:

代码语言:javascript
复制
function artist(name) {
    this.name = name;
    this.albums = new Array();

    this.addAlbum = function(albumName) {
        for (var i = 0; i < this.albums.length; i++) {
            if (this.albums[i].name == albumName) {
                return this.albums[i];
            }
        }

        var album = new album(albumName);
        this.albums.push(album);

        return album;
    }
}

function album(name) {
    this.name = name;
    this.songs = new Array();
    this.picture = null;

    this.addSong = function(songName, track) {
        var newSong = new songName(songName, track);
        this.songs.push(newSong);

        return newSong;
    }
}

出现以下错误:

TypeError: album is not a constructor

我找不到问题所在。我读了很多其他的帖子,但我找不到类似的问题。会不会是不允许在另一个对象中创建对象?我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2013-02-22 01:40:29

这一行

代码语言:javascript
复制
var album = new album(albumName);

隐藏外部album函数。所以,是的,album不是函数内部的构造函数。更准确地说,在这一点上它是undefined

为了避免这种问题,我建议以大写开头命名您的“类”:

代码语言:javascript
复制
function Album(name) {

更一般的情况下,我会建议在有疑问的时候关注the Google style guide

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15008793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档