0
<script>
person = new Object()
person.name = "Tim Scarfe"
person.height = "6Ft"

person.run = function() {
    this.state = "running"
    this.speed = "4ms^-1"}

var obj = new person();
alert(obj.name);
</script>

質問:

コンソール ログに「TypeError: person is not a constructor」と表示されますが、上記のスクリプトの問題は何ですか?

4

1 に答える 1

2

new演算子はコンストラクター関数を呼び出して、オブジェクト インスタンスを作成します。つまり、コンストラクタは である必要がありfunctionます。この場合、Person はオブジェクト インスタンスです。

コンストラクターのプロトタイププロパティを使用して、共有オブジェクトを作成できます。

次のように書き換えることができます。

function person(){
    this.name='';
    this.height='';
}

person.prototype.run = function(){
    this.state='';
}
var obj = new person();
alert(obj.name);
于 2013-06-14T02:55:40.810 に答える