-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.

在您的代码中,您只需扩展给定的参数D,它永远不会返回。

于 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 回答