ホームページ  >  記事  >  ウェブフロントエンド  >  javascript_javascriptスキルでのオブジェクトの使用の詳細な説明

javascript_javascriptスキルでのオブジェクトの使用の詳細な説明

WBOY
WBOYオリジナル
2016-05-16 16:17:561136ブラウズ

コードをコピーします コードは次のとおりです:

関数 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 にすることもできます
//descriptors: 属性名を属性記述子にマップするオプションのオブジェクト
// proto から継承され、記述子のプロパティを持つ、新しく作成されたオブジェクトを返します。

コードをコピーします コードは次のとおりです:

var obj = Object.create({x:1,y:2},{
z:{値:3、書き込み可能:true、列挙可能:true、構成可能:true}
});
forEach(obj)
obj.z=5
console.log(obj)
console.log("============================================ = ========)

//2
//Object.defineProperties(o,descriptors)
// オブジェクトの複数のプロパティを作成または構成します
//パラメータ:
//o: プロパティを作成または設定するオブジェクト
//descriptors: 属性名を属性記述子にマップするオブジェクト
// オブジェクト o

を返します

コードをコピーします コードは次のとおりです:

Object.defineProperties(obj,{
a:{値:"a"、書き込み可能:false、列挙可能:true、構成可能:true}、
b:{値:"b"、書き込み可能:false、列挙可能:true、構成可能:true}
})
forEach(obj);
console.log("============================================ = ========)

//3
//Object.defineProperty(o,name,desc)
// オブジェクトのプロパティを作成または設定します
//パラメータ:
//o: プロパティが作成または設定されるオブジェクト
//name: 作成または設定する属性の名前
//desc: 作成される新しいプロパティ、または既存のプロパティの変更を記述するプロパティ記述子オブジェクト
// オブジェクト o

を返します

コードをコピーします コードは次のとおりです:

Object.defineProperty(obj,"c",{value:"c",writable:false,enumerable:false,configurable:true})
forEach(obj);
console.log("============================================ = ========)

//4
//Object.freeze(o)
//オブジェクトを不変として設定し、継承されたプロパティには影響しません
//パラメータ:
//o: 凍結するオブジェクト
// true|falseを返します

コードをコピーします コードは次のとおりです:

var p = {x:1,y:2}
Object.freeze(p);
p.x =2;
console.log(p);
console.log(Object.isFrozen(p)) //true、一度凍結されると解凍することはできません
console.log("============================================ = ========)

//5
//Object.getOwnPropertyDescriptor(o,name)
//パラメータ:
//o: オブジェクト
//name: クエリする属性名
//属性の特性をクエリします
// オブジェクトの指定されたプロパティのプロパティ記述子オブジェクトを返します。指定されたプロパティが存在しない場合は、unknown を返します。
/*
属性記述子は、オブジェクトの特性を記述する通常の JavaScript オブジェクトです。JavaScript 属性には 2 つのタイプがあります。データ属性には値と 3 つのプロパティがあります: enumerable、
アクセサ プロパティは書き込み可能で構成可能であり、ゲッター メソッドやセッター メソッド、および列挙可能性を備えています。
データ属性の記述子:
{
値: 任意の JavaScript 値、
書き込み可能: true|false、
列挙可能: true|false、
構成可能:true|false
}
アクセサー プロパティの記述子:
{
get: 関数または未定義: 属性値を置き換えます
set: 関数または未定義: 書き込み可能性を置き換えます
列挙可能:true|false,
構成可能:true|false
}
*/

コードをコピーします コードは次のとおりです:

var o5 = Object.getOwnPropertyDescriptor(obj,"c");
console.log(o5);
forEach(o5);
console.log("============================================ = ========)

//6
//Object.getOwnPropertyNames(o)
//非継承属性の名前を返します
//パラメータ:
//o: オブジェクト
// 列挙不可能なプロパティを含む、o のすべての非継承プロパティを含む名前を返します。 {列挙可能: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 として追加できます| false として追加できません
//説明: すべてのオブジェクトは、作成時に 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、それ以外の場合は false;

コードをコピーします コードは次のとおりです:
console.log("============================================ = ========)

//11

//object.isPrototypeOf(o)
// 現在のオブジェクトが別のオブジェクトのプロトタイプであるかどうかを判断します
//パラメータ:
//o: すべてのオブジェクト
//オブジェクトが o のプロトタイプである場合、それは true です。o がオブジェクトでない場合、またはオブジェクトが o のプロトタイプではない場合、それは false です。

コードをコピーします コードは次のとおりです:
var o = 新しいオブジェクト();
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。
// 新しい (継承されていない) プロパティをオブジェクトに追加できず、既存の (継承されていない) プロパティを削除できない場合、オブジェクトは閉じられます。
//オブジェクトを閉じるために一般的に使用されるメソッドは、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)
// for/in ループで特定の属性が表示されるかどうかを確認します
//パラメータ
//propname: オブジェクトの指定されたプロパティ名を含む文字列
// オブジェクトに propname という名前の非継承プロパティがあり、そのプロパティが列挙可能な場合、true を返します。

コードをコピーします コードは次のとおりです:

var o15 = 新しいオブジェクト();
o15.x = 15;
o15.propertyIsEnumerable("x");
o15.propertyIsEnumerable("y"); //false;
o15.propertyIsEnumerable("toString"); //false;
console.log("============================================ = ========)

//16
//Object.seal(o)
//オブジェクトのプロパティの追加または削除を禁止します
//パラメータ
//o: 閉じるオブジェクト
//閉じたパラメータ オブジェクト o

を返します

//17
//Object.toLocaleString()
// オブジェクトのローカライズされた文字列識別子を返します
// Object クラスによって提供されるデフォルトの toLocaleString() メソッドは、単純に toString() メソッドを呼び出します。
//ただし、他のクラス (配列、日付、数値など) はそれぞれこのメソッドの独自のバージョンを定義していることに注意してください。ローカライズされた文字列変換を実行するために使用されます。独自のクラスを定義するときは、このメソッドをオーバーライドする必要がある場合もあります。

//18
//object.toString()
//オブジェクトの文字列表現を定義します
//JavaScript プログラムでは、一般的に toString() メソッドは頻繁には呼び出されません。通常、このメソッドはオブジェクト内で定義されており、オブジェクトを文字列に変換する必要がある場合、システムが自動的にこのメソッドを呼び出します。

//19
//Object.valueOf()
//指定されたオブジェクトの元の値
// 指定されたオブジェクトに関連付けられた元の値が存在する場合は、その値を返します。変更されたオブジェクトに関連付けられた値がない場合は、オブジェクト自体を返します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。