私はプロトタイプに完全に精通しているわけではなく、これは間違った実装であると確信していますが、私が達成しようとしていることの小さな例をまとめました。
プロトタイプを関数ではなくリテラルオブジェクトにすることはできましたが、プロトタイプを作成しているオブジェクト(この場合はPerson)内の変数/プロパティにアクセスできないという問題が発生しました。
Person = function() {
this.name = 'mike';
this.departureSaying = 'Adios amigo!';
}
Person.prototype.say = function() {
var self = this;
function hello() { alert('hello my name is ' + self.name); }
function goodbye() { alert(self.departureSaying); }
}
var mike = new Person();
mike.say.hello();
mike.say.goodbye();
これを実行すると、Objectにはメソッドhelloとgoodbyeがありません。