コードコピーは次のとおりです。
foreach(o){
var html = "";
for(var i in o){
html+= i+"="+o [i]+"";
}
console.log(html);
console.log(o);
}
// 1
//object.create(proto)
//object.create(proto、descriptors)
//指定されたプロトタイプと属性を使用してオブジェクトを作成します
//パラメーター:
// proto:新しく作成されたオブジェクトのプロトタイプはnullにすることができます
//記述子:属性名に属性記述子にマップするオプションのオブジェクト
// Protoから継承された新しく作成されたオブジェクトを返し、同時に記述子のプロパティを持っています。
コードコピーは次のとおりです。
var obj = object.create({x:1、y:2}、{
Z:{値:3、手紙:true、列挙可能:true、configurable:true}
});
foreach(obj)
obj.z = 5
console.log(obj)
console.log( "======================================================================="))
// 2
//object.defineproperties(o、descriptors)
//オブジェクトの複数のプロパティを作成または構成します
//パラメーター:
// O:属性を作成または構成するオブジェクト
//記述子:属性名を属性記述子にマップするオブジェクト
//オブジェクトを返しますo
コードコピーは次のとおりです。
object.defineProperties(obj、{
a:{value: "a"、writable:false、列挙可能:true、configurable:true}、
b:{value: "b"、writable:false、列挙可能:true、configurable:true}
})
foreach(obj);
console.log( "======================================================================="))
// 3
//object.defineproperty(o、name,desc)
//オブジェクトのプロパティを作成または構成します
//パラメーター:
// O:属性が作成または構成されるオブジェクト
//名前:作成または構成される属性名
// DESC:作成する新しい属性または既存の属性の変更を記述する属性記述子オブジェクト
//オブジェクトを返しますo
コードコピーは次のとおりです。
object.defineProperty(obj、 "c"、{value: "c"、writable:false、列挙:false、configurable:true})
foreach(obj);
console.log( "======================================================================="))
// 4
//object.freeze(o)
//オブジェクトを変更できないように設定し、継承された属性に影響しない
//パラメーター:
// O:凍結するオブジェクト
// trueを返します| false
コードコピーは次のとおりです。
var p = {x:1、y:2}
object.freeze(p);
px = 2;
console.log(p);
console.log(object.isfrozen(p))// true、凍結したら解凍することはできません
console.log( "======================================================================="))
// 5
//object.getownPropertyDescriptor(o、name)
//パラメーター:
// O:オブジェクト
//名前:クエリの属性名
//プロパティのプロパティを照会します
//オブジェクトの指定された属性の属性記述子オブジェクトを返します。指定された属性が存在しない場合、未定義に戻ります。
/*
属性記述子は、特定のオブジェクトの特性を記述する通常のJavaScriptオブジェクトです。 JavaScript属性には2つのタイプがあります。データ属性には1つの値と3つのプロパティがあります。
書き込み可能で、構成可能。 Accessorプロパティには、ゲッターおよび/またはセッターメソッド、および列挙があります。
データプロパティの記述子:
{
値:JavaScript値、
手紙:true | false、
列挙可能:true | false、
設定可能:true | false
}
アクセサーのプロパティの記述子:
{
get:functionまたはundefined:属性値を交換します
セット:関数または未定義:ライター性を交換します
列挙可能:true | false、
設定可能:true | false
}
*/
コードコピーは次のとおりです。
var o5 = object.getownPropertyDescriptor(obj、 "c");
console.log(o5);
foreach(o5);
console.log( "======================================================================="))
// 6
//object.getownpropertynames(o)
//非Herited属性の名前を返します
//パラメーター:
// O:オブジェクト
// Oのすべての非Herited属性の名前を返します。 {列挙可能:false}
コードコピーは次のとおりです。
var o6 = object.getownPropertynames(obj);
console.log(o6);
console.log( "======================================================================="))
// 7
//object.getPrototypeof(o)
//パラメーター:
// O:オブジェクト
//オブジェクトのプロトタイプを返します
コードコピーは次のとおりです。
var o7 = object.getPrototypeof(obj);
console.log(o7);
console.log( "======================================================================="))
// 8
//object.hasownproperty(propname);
//パラメーター:
// propnameには、オブジェクトのプロパティ名が含まれています
//属性が継承されているかどうかを確認します
// trueを返します| false
コードコピーは次のとおりです。
console.log(obj.hasownproperty( "x")); // => false
console.log(obj.hasownproperty( "z")); // => true
console.log( "======================================================================="))
// 9
//object.isextensible(o);
//新しい属性をオブジェクトに追加できるかどうかを判断します
//パラメーター:
// o:拡張性を確認するオブジェクト
// returnはtrueとして追加できます|偽ではありません
//説明:すべてのオブジェクトは、Object.preventextensions(o)object.seal(o)またはobject.freeze(o)に渡されるまで作成すると拡張可能です。
コードコピーは次のとおりです。
console.log(object.isextensible(obj)); // => true
//object.preventextensions(obj)///拡張できないようにセットします
//console.log(object.isextensible(obj)); // => false
console.log( "======================================================================="))
// 10
//object.isfrozen(o)
//オブジェクトが変更できないかどうかを判断します
//パラメーター:
// O:チェックするオブジェクト
// oが凍結され、変更されない場合はtrue;それ以外の場合は偽です。
コードコピーは次のとおりです。
console.log( "======================================================================="))
// 11
//object.isprototypeof(o)
//現在のオブジェクトが別のオブジェクトのプロトタイプであるかどうかを表示します
//パラメーター:
// O:すべてのオブジェクト
//オブジェクトがOのプロトタイプである場合、Oがオブジェクトではない場合、またはオブジェクトがOのプロトタイプではない場合、それは偽です。
コードコピーは次のとおりです。
var o = new object();
object.prototype.isprototypeof(o)// true
array.prototype.isprototypeof([1,2])// true;
object.prototype.isprototypeof(function.prototype)// true
console.log( "======================================================================="))
// 12
//object.issealed(o)
//オブジェクトのプロパティを追加または削除できるかどうかを判断します
//パラメーター:
// O:チェックするオブジェクト
// oが囲まれている場合はtrue、それ以外の場合はfalse。
//オブジェクトに新しい(非糸状の)プロパティを追加できず、既存の(非Herited)プロパティが削除されない場合、同封されています。
//オブジェクトを囲む一般的な方法は、object.seal(o)またはobject.freeze(o)です
console.log( "======================================================================="))
// 13
//object.keys(o)
//無料の列挙性属性名を返します
//パラメーター:
// O:オブジェクト
コードコピーは次のとおりです。
console.log(object.keys({x:1、y:2}))// => [x、y]
console.log( "======================================================================="))
// 14
//object.preventextensions(o)
//オブジェクトに新しい属性を追加しない
//パラメーター:
// O:設定する可能性のあるオブジェクト
//スケーラブルでないように設定されると、拡張可能になるように変更できなくなりました
console.log( "======================================================================="))
// 15
//object.propertyisenumerable(propname)
//特定の属性がループで/inで表示されるかどうかを検出する
//パラメーター
// propname:オブジェクトの指定された属性名を含む文字列
//オブジェクトにPropnameという名前の非糸状プロパティがあり、プロパティが列挙可能である場合はtrueを返します。
コードコピーは次のとおりです。
var o15 = new object();
o15.x = 15;
o15.propertyisenumerable( "x"); //真実;
o15.propertyisenumerable( "y"); //間違い;
o15.propertyisenumerable( "toString"); //間違い;
console.log( "======================================================================="))
// 16
//object.seal(o)
//オブジェクトのプロパティの追加または削除をブロックします
//パラメーター
// o:囲まれるオブジェクト
//閉じた状態のパラメーターオブジェクトを返しますo
// 17
//object.tolocalestring()
//オブジェクトローカルのローカライズされた文字列ラベルを返します
//オブジェクトクラスによって提供されるデフォルトのtolocalestring()メソッドは、単純な呼び出しtoString()メソッドです。
//ただし、他のクラス(配列、日付、番号など)は、それぞれこのメソッドの独自のバージョンを定義していることに注意してください。ローカライズされた文字列変換を実行するために使用されます。この方法は、自分のクラスを定義するときにオーバーライドする必要がある場合があります。
// 18
//object.toString()
//オブジェクトの文字列表現を定義します
// JavaScriptプログラムでは、toString()メソッドはあまり呼び出されません。一般に、このメソッドがオブジェクトで定義されている場合、システムはオブジェクトを文字列に置き換えるために必要なときに自動的に呼び出します。
// 19
//object.valueof()
//指定されたオブジェクトの元の値
//指定されたオブジェクトに関連付けられた元の値を返します。そのような値が存在する場合、変更されたオブジェクトに関連する値がない場合、オブジェクト自体が返されます。