概要
prototypeに色々値を入れてみての検証
検証
//Define var Class=function(){}; Class.prototype.x=999; //Exe onload=function(){ var tempClass=new Class(); console.log(tempClass.x);// 999 tempClass.x=2; console.log(tempClass.x);// 2 tempClass.x=null; console.log(tempClass.x);// null tempClass.x=0; console.log(tempClass.x);// 0 tempClass.x=false; console.log(tempClass.x);// false tempClass.x=undefined; console.log(tempClass.x);// undefined delete tempClass.x; console.log(tempClass.x);// 999 };
メモ
- インスタンス化後に、参照したプロパティがない場合、__proto__からひっぱってこようとする。 -> 999
- プロパティに値が代入されると優先的にそちらを参照する -> 2
- prototypeのプロパティには参照以外を入れても使える。
- 分かってた事ではあるが、こんな使い方をする人がいるかは不明
- static的な使い方ができなくもなさそうなので、クロージャ嫌いな人とかが使う…?
- __proto__から値を参照する条件は (メンバー==false) ではない -> 0 null false undefined
- 既に値がある場合、 delete 演算子によってまた__proto__から値を参照するようになる。 -> 999