0

我刚刚开始在 javascript 中上课,这是我创建的第一堂课,例如:

function MessageBox(parent){
    this.id = "msg-box";   // ID for the Box
    this.createElements(this.id);
    this.parentElement = parent;
};
MessageBox.prototype = {
    createElements: function(id){
        // Create Main Container
        this.containerElement = document.createElement('div');
        this.containerElement.setAttribute('id', this.id);
        this.parentElement.appendChild(this.containerElement);
    }
};

但是当我在我的 index.html 文件中调用这个文件时,它返回错误createElements()不是函数..

这也是我的 index.html:

<script type="text/javascript">
        window.onload = function(){
            var box = MessageBox('body');
            //box.start();
        }
    </script>
4

1 回答 1

2

由于您的函数是构造函数,因此您要使用

var box = new MessageBox('body');
//        ^^^

否则,不会创建任何实例,并且您的构造函数会在默认上下文对象、全局window对象(没有createElements属性)上执行。看看MDN 对this关键字new运算符的介绍。

于 2013-01-09T06:32:19.287 回答