1

javascript の oop に問題があります。プロジェクトで使用しているコードに似た小さなコード スニペットがあります。私は小さなコード例を書きましたが、これにも問題があります。Javascript で何が間違っているのかを知りたいので、私のコードは機能します。

function Person(name) {
  this.name = name;
}

Person.prototype.Display = {};

Display.prototype.text = function(str) {
  document.write(str + '<br />');
  window.alert(str);
};

var Jacob = new Person('Jacob');

Jacob.Display.text('Hello World!');

この小さなコード例は、hello world というテキストを表示することになっています。私が抱えている問題は、回線"Jacob.Display.Text('Hello World!');"が機能​​していないことです。

4

2 に答える 2

1

私はあなたがこれを意味すると思います:

function Person(name) {
  this.name = name;
}

Person.prototype.display = {
    text : function(str) {
        document.write(str + '<br />');
        window.alert(str);
    }
};

var Jacob = new Person('Jacob');
Jacob.display.text('Hello World!');

('display' の小文字の 'd' にも注意してください。コンストラクターの頭文字は大文字のままにしておきます)

于 2012-12-18T01:43:49.707 に答える
0

あなたが何をしようとしているのか正確にはわかりませんが、これはおそらくあなたが望むものに近いでしょう。

function Person(name) {
  this.name = name;
  this.element = document.createElement('div');
  document.body.appendChild(this.element);
}

Person.prototype.display = function(str) {
  this.element.textContent = str;
  console.log(this.name + ' set to ' + str);
};

var jacob = new Person('Jacob');

jacob.display('Hello World!');
于 2012-12-18T02:06:26.687 に答える