regepanのはてなブログ

個人的なメモ帳レベルの文章。

typeofの拡張版サンプル(179ページ)[Advent Calendar 2013(8日目)]

179ページに下記説明がある。

// ユーザ定義クラスに対しては、classnameというプロパティ名を調べる。
// このプロパティはオブジェクトのプロトタイプから継承する。
if ("classname" in x.constructor.prototype &&// classname を継承していて
typeof x.constructor.prototype.classname == "string") // 値が文字列。
return x.constructor.prototype.classname;

サイ本5thからのコード抜粋。


f:id:reggaepunch:20131208170708p:plain
※↑Chromeのconsoleのキャプチャ

が、Chromeのコンソールで捜索してみたがclassnameというプロパティ見つからない。
ユーザー定義関数だから自分で定義してねってことなのかな??
ちょっとここは何を説明してるのかわかりにくいと感じた。

あと、コード中の「x」がコンストラクタなのかインスタンスなのかが明記されていないところも少し曖昧な感じがした。まぁ些細な点だし手を動かしていけば予想はつくようになるけども。。

あとここまで読んで気になってるのは、日本語では「コンストラクタ」と「constructor」を使い分けてるけど、個々の部分は原書だとどう書いてあるのか気になってる。
いつか。。確かめよう。


JavaScript 第5版

JavaScript 第5版

JavaScript 第6版

JavaScript 第6版