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