最速怪談選手権

下記の参考javascriptがあり、おそらくjohnと表示されると思うのですが、nameというコンストラクタの引数名は何でもよく、よく使われるものなのでしょうか?

var Human = function(name) {
this.name = name;
};

Human.prototype = {
sayMyName: function() {
alert(this.name);
}
};

var bokuchan = new Human('john’);

A 回答 (1件)

関数の引数は関数内スコープのみで使用される名前なので、


"n" でも "callSignName" でも "汝の真の名をここに記せよ" でも、
技術的には何でもよいです。

が、よほどの理由がない限りは、
プロパティにそのまま設定する値はプロパティ名と同じ名前にしましょう。

ご提示の処理ならば、
プロパティ name の為の設定値なので、引数名 name が妥当です。

余談1. 変数名に予約語は使えません
https://developer.mozilla.org/ja/docs/Web/JavaSc …

余談2. グローバルオブジェクトのプロパティ名と同名は避ける
ドット表記法を省略したプロパティの使用に制限がかかるため
例) 変数 document を定義する
→ window.document を省略した記載の "document" ができなくなる
例) 変数 name を定義する
→ window.name を省略した記載の "name" ができなくなる
→ 省略されることが少ないプロパティなので、実質的には問題ない
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!