var f = function();
var instance = new f();
instance
クラス functionの名前がわかっている場合は、次のように単純にプロトタイプにアクセスできます。
var prototype = f.prototype;
prototype.someMember = someValue;
そうでない場合:
1)
var prototype = Object.getPrototypeOf(instance);
prototype.someMember = someValue;
2)または
var prototype = instance.__proto__;
prototype.someMember = someValue;
3)または
var prototype = instance.constructor.prototype; // works only if constructor is properly assigned and not modified
prototype.someMember = someValue;
互換性のために、コードに次のスニペットを配置できます (Object.getPrototypeOf(instance)
プロトタイプを返すために always を使用します)。
if(!Object.getPrototypeOf) {
if(({}).__proto__ === Object.prototype && ([]).__proto__ === Array.prototype) {
Object.getPrototypeOf = function getPrototypeOf(object) {
return object.__proto__;
};
} else {
Object.getPrototypeOf = function getPrototypeOf(object) {
// May break if the constructor has been changed or removed
return object.constructor ? object.constructor.prototype : void 0;
};
}
}
アップデート:
ECMA-262 第 6 版 (2015 年 6 月) によると、__proto__
プロパティは Web ブラウザーの追加機能として標準化されています。トップブラウザのすべての最新版が現在サポートしています。についてもっと読む__proto__
: