2016-06-15 21 views
-1
Object.someProp = "hello"; 
Object.prototype.somProp2 = "hello2"; 
var i = new Object(); 
alert(i.somProp2);//1 
alert(i.someProp);//2 

なぜ1は動作しますが2は動作しませんか? ほとんどすべてのオブジェクトが "Object"から派生している場合、somePropはsomeProp2と同じ方法でチェーンを横断しませんか?私はこれに新しいので、どんな助けもいいですか?追加されたオブジェクトプロパティがトラバースしないのはなぜですか?

+0

Objectインスタンスが*オブジェクトからの継承継承を実装するときにこのprototypeプロパティにプロパティとメソッドを添付してください。プロトタイプ*、ない*オブジェクト*。 'i.someProp'は* undefined *を返すべきです。 – RobG

答えて

0

こんにちはあなたがこれを実行する場合、それは私の父はEnglishundefined

ですが、uは、この

<!DOCTYPE html> 
<html> 
<body> 

<p id="demo"></p> 

<script> 
function Person(first, last, age, eye) { 
    this.firstName = first; 
    this.lastName = last; 
    this.age = age; 
    this.eyeColor = eye; 
} 
Person.prototype.nationality = "English"; 

var myFather = new Person("John", "Doe", 50, "blue"); 
document.getElementById("demo").innerHTML = 
"My father is " + myFather.nationality; 
</script> 

</body> 
</html> 

を実行するかどうかをPUTマイあるあなたが表示されます

<!DOCTYPE html> 
<html> 
<body> 

<p id="demo"></p> 

<script> 
function Person(first, last, age, eye) { 
    this.firstName = first; 
    this.lastName = last; 
    this.age = age; 
    this.eyeColor = eye; 
} 
Person.prototype.nationality = "English"; 
Person.nationality2 = "English"; 

var myFather = new Person("John", "Doe", 50, "blue"); 
document.getElementById("demo").innerHTML = 
"My father is " + myFather.nationality + myFather.nationality2; 
</script> 

</body> 
</html> 

下のコードをご確認ください。父は英語です

このJavaScriptプロトタイププロパティは、既存のプロトタイプに新しいプロパティをddは: JavaScriptの関数は(このプロパティは、デフォルトでは空である)、prototypeプロパティを持っており、あなたが