JavaScript---対象
6186 ワード
JSはキーの値を文字列に変更します.属性は無秩序です.例えば、
属性検出
class:標識タイプObject.prototype.toString;call()は、例えば、1はNumber–>を返してオブジェクトに変換します.
extenssible:拡張できるかどうか、デフォルトtrue Object.prevent Extensions(obj);
configrable:Object.seal(obj)//configrableをビットfalseに設定して判断する:isSealed
Object.freeze(obj):すべてのラベルがfalseです.
序文化
var obj = {};
obj[1]=1;
//obj['1']=1;
var obj={};
obj[{x:1}] = 1;
//obj[{}] = 1;
属性プロトタイプチェーンdeleteはプロトタイプチェーンに影響しません.function foo() {
}
foo.prototype.z=3;
obj = new foo();
obj.x=1;//
//obj.z = 3;//
obj.hasOwnProperty('z');//false
obj.z=5;
//foo.prototype.z=3;
obj.hasOwnProperty('z');//true
属性の読み書きvar obj={x:1};
obj.x;//1
obj['x'];//1
obj.y;//undefined
obj.y.z = 2;//error--undefined
obj.y=3;//
属性を削除delete Object.prototype;//false
delete p['x'];
delete p.x;
var定義の変数はdeleteにも削除できません.属性検出
var cat = new Object;
cat.legs=4;
'legs' in cat;//true
Object.defineProperty(cat,'price',{
enumerable:false,value:10000});// false
cat.propertyIsEnumerable('price');//false
cat.hasOwnProperty('price');//true
if(cat.legs !== undefined)
if(cat.legs != undefined)// !==undefined,or,!==null
if(cat && cat.legs)// !==undefined,or,!==null
セッターvar man = {
age=null;
get age() {}
set age(){}
}
man.age = 100;// set
プロトタイプチェーン上の属性の値を変更します.//obj x
Object.defineProperty(obj,x',{writable:true,configurable:true,value:100});
obj.x;//100
obj.x=500;//500
属性ラベル://
Object.getOwnPropertyDescriptor({pro:true},'pro');
//value,writable,enumerable,configurable true
//
var Person = {};
Object.defineProperty(person,'name',{
configurable:false,
writable:true,
enumerable:true,
value:"lxf"
});
// , defineProperties, ,
プロトタイプ:プロトタイプチェーンを実現class:標識タイプObject.prototype.toString;call()は、例えば、1はNumber–>を返してオブジェクトに変換します.
extenssible:拡張できるかどうか、デフォルトtrue Object.prevent Extensions(obj);
configrable:Object.seal(obj)//configrableをビットfalseに設定して判断する:isSealed
Object.freeze(obj):すべてのラベルがfalseです.
序文化
JSON.stringfy(obj);//undefined ,NaN,Infinity null
var obj JSON.parse('{"x":1}');//
:
var obj = {
x:1,
y:2,
o:{
o1:1,
o2:2.
toJSON:finction() {
return this.o1+this.o2;
}
}
};
JSON.stringfy(obj);
//{"x":1,"y":2,"o":3}