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を持たない) で実行されます。MDN のキーワード演算子の紹介をご覧createElementsください。thisnew

于 2013-01-09T06:32:19.287 に答える