みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

js プロトタイプ

javascriptソースコード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>サンプル</title>
</head>
<body>

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script src="fastclick.js"></script>
<script>
function print(str){
document.write(str + "<br />");
}

function Car(manufact, name){
this.manufact = manufact;
this.name = name;
}

Car.prototype.info = function(){return this.manufact + " " + this.name;};

document.write("<p>");

var car1 = new Car("Toyota", "PRIUS");
print(car1.info());

var car2 = new Car("Honda", "INSIGHT");
print(car2.info());

document.write("</p>");
</script>
</body>
</html>

23行目なのですが「 Car.prototype.info 」とありますがjsにおいてプロトタイプはオブジェクトだという事は認識しておりますがプロトタイプを宣言する意味は何があるのでしょうか?

参考urlです。
http://www.ajaxtower.jp/js/function_class/index3.html

投稿日時 - 2017-02-20 14:20:50

QNo.9296064

暇なときに回答ください

質問者が選んだベストアンサー

Carのprototypeプロパティにメソッドを付けると
new Car()で作った全てのオブジェクトからその同じメソッドを利用できます。
コンストラクタでオブジェクトに直接代入しても良いですが、
そうすると全てのオブジェクトのために新しく関数を作ることになるので無駄です。

同じで良いものはprototypeプロパティに定義し、
違う内容でないといけないものは、コンストラクタで定義するのが流儀です。

投稿日時 - 2017-02-20 14:55:01

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問