-1

コード :

function CreateDiv(D) {

        D.width = this.width;
        D.height = this.height;
        D.position = "absolute";
        D.bottom = 0;
        D.right = function () { };
        D.id = Math.floor((Math.random() * 10) + 1);
        D.data = function () {
            return "this is data of Div" + D.id;
        };
        D.create = function () {
            var divToAppend = "<div id='" + D.id + "' style='border:1px solid black;width:20;height:20;'  >" + D.data + "</div>";
            return divToAppend;
           // $("#Container").append(divToAppend);
        };
    }

    function NewChat() {
        var divv = new CreateDiv({width:200,height:200});
        alert(divv.create); // undefiend 
    }

誰が私が間違っているのか教えてもらえますか?

4

2 に答える 2

2

混同してD.this.クラス定義で:

function CreateDiv(D) {

    this.width = D.width;
    this.height = D.height;
    this.position = "absolute";
    this.bottom = 0;
    this.right = function () { };
    this.id = Math.floor((Math.random() * 10) + 1);
    this.data = function () {
        return "this is data of Div" + this.id;
    };
    this.create = function () {
        var divToAppend = "<div id='" + this.id + "' style='border:1px solid black;width:20;height:20;'  >" + this.data + "</div>";
        return divToAppend;
       // $("#Container").append(divToAppend);
    };
}

演算子と関数を使用して新しいオブジェクトを作成する場合new、そのコンストラクター関数内で を使用して、作成されたオブジェクトを参照しますthis

コードでは、指定された parameterDを拡張するだけで、返されることはありません。

于 2013-09-19T07:37:14.370 に答える
0

を使用する代わりにD.create; あなたが使用する必要がありますthis.create

this.create = function () {
            var divToAppend = "<div id='" + D.id + "' style='border:1px solid black;width:20;height:20;'  >" + D.data + "</div>";
            return divToAppend;
           // $("#Container").append(divToAppend);
        };
于 2013-09-19T07:38:13.873 に答える