Object.prototype. つまり, Objectのプロトタイプオブジェクトで定義されているのでしょうか?
こればっかりはそういう仕様だからとしか言いようがないですね
sample
javascript
1function hoge(x){
2 this.x=x;
3}
4var y=new hoge(123);
5hoge.prototype.view=function(){console.log(this.x)};
6y.view(); //結果:123
7var z=new hoge(456);
8z.view(); //結果:456
上記hogeに直接メソッドを追加できませんがprototypeを経由すればできます
またインスタンスyを指定したあとにprototype経由でメソッドを追加しても
インスタンスからメソッドが呼び出せます。
追記
prototypeを通さないとメソッドが追加されない
javascript
1function hoge(x){
2 this.x=x;
3}
4var y=new hoge(123);
5hoge.view=function(){console.log(this.x)}; //エラー
インスタンス自体は拡張可能
javascript
1function hoge(x){
2 this.x=x;
3}
4var y=new hoge(123);
5y.view=function(){console.log(this.x)};
6y.view(); //結果:123
7var z=new hoge(456);
8z.view(); // エラー
インスタンスを拡張しても元のコンストラクタへは影響がないので
別のインスタンスから実行することはできない
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/05 01:41
2019/12/05 03:02
2019/12/05 03:13
2019/12/05 03:20
2019/12/05 03:26 編集
2019/12/05 03:31
2019/12/05 04:19
2019/12/05 04:20
2019/12/05 07:47
2019/12/05 07:55
2019/12/05 08:05
2019/12/05 08:14
2019/12/05 08:42
2019/12/09 06:58