コンストラクタ
new object()
新しいオブジェクト(値)
パラメーター
価値
元の値(つまり、数字、ブール値、または文字列)を宣言するオプションパラメーターは、数値オブジェクト、ブールオブジェクト、または文字列オブジェクトに変換されます。このオブジェクトは、1.1およびECMAScript VLより前にJavaScriptによってサポートされていません。
返品値
値パラメーターがコンストラクターに渡されない場合、新しく作成されたオブジェクトインスタンスを返します。元の値パラメーターが指定されている場合、コンストラクターは元の値ラッパーオブジェクト、つまり番号オブジェクト、ブールオブジェクト、または文字列オブジェクトを作成して返します。新しい演算子が使用されない場合、オブジェクト()コンストラクターは関数として呼ばれ、新しい演算子を使用する場合と同じように動作します。
財産
コンストラクタ
オブジェクトのコンストラクターであるJavaScript関数への参照
方法
1.HasownProperty()
オブジェクトに、特定の名前を持つ局所的に定義された(非接続)プロパティがあるかどうかを確認します。
コードコピーは次のとおりです。
<script type = "text/javascript">
var o = new object();
o.name = "tom";
アラート(o.hasownproperty( "name")); //真実
アラート(o.hasownproperty( "age")); //間違い
</script>
2.isprototypeof()
文法
object.isprototypeof(o)
パラメーター
o
任意のオブジェクト。
返品値
オブジェクトがOのプロトタイプである場合にtrueを返します。oがオブジェクトではない場合、またはオブジェクトがOのプロトタイプではない場合、falseが返されます。
説明する
JavaScriptオブジェクトは、プロトタイプオブジェクトのプロパティを継承します。オブジェクトのプロトタイプは、オブジェクトの作成と初期化に使用されるコンストラクターのプロトタイプ属性によって参照されます。 ISPrototypeof()メソッドは、オブジェクトが別のオブジェクトのプロトタイプであるかどうかを判断する方法を提供します。この方法は、オブジェクトのクラスを決定するために使用できます。
例
コードコピーは次のとおりです。
var o = new object(); //オブジェクトを作成します
object.prototype.isprototypeof(o)// true:oはオブジェクトです
function.prototype.isprototypeof(o.tostring); // true:toStringは関数です
array.prototype.isprototypeof([1,2,3]); // true:[1,2,3]は配列です
//以下は同じテストを実行する別の方法です
(o.constructor == object); // true:oはobject()constructorで作成されました
(o.toString.constructor == function); // true:o.tostringは関数です
/プロトタイプオブジェクト自体はプロトタイプオブジェクトです。次の呼び出しはtrueを返します
//命令関数はfunction.prototype and object.prototypeプロパティを継承します。
object.prototype.isprototypeof(function.prototype);
3.ProertyisEnumerable()
文法
object.PropertyisEnumerable(propname)
パラメーター
プロップ名
オブジェクトプロトタイプの名前を含む文字列。
返品値
オブジェクトにPropnameという名前の非糸状プロパティがあり、プロパティが列挙可能である場合はtrueを返します(つまり、for/inループで列挙できます)。
説明する
for for/inステートメントを使用して、オブジェクトのプロパティを「列挙可能」を横断します。しかし、オブジェクトのすべてのプロパティが列挙可能ではありません。 JavaScriptコードを介してオブジェクトに追加された属性は列挙できますが、通常、内部オブジェクトの事前定義されたプロパティ(メソッドなど)は通常列挙できません。 PropertiesEnumerable()メソッドは、列挙性と非変理不可能なプロパティを区別する方法を提供します。ただし、ECMAScript標準は、PropertyIsEnumerable()メソッドがプロトタイプチェーンを検出しないことを規定していることに注意してください。
例
コードコピーは次のとおりです。
var o = new object(); //オブジェクトを作成します
ox = 3.14; //定義 - 属性
o.propertyisenumerable( "x"); // True Property Xはローカルで列挙可能です
o.propertyisenumerable( "y"); // false:oに属性yがありません
o.propertyisenumerable( "tostring"); // false:tostrlngプロパティが継承されます
object.prototype.propertyisenumerable( "toString"); // false:列挙
バグ
標準の標準がプロパティエナブル()メソッドを制限して、非扱いのないプロパティのみを検出する場合、明らかに間違っています。 Internet Explorer 5.5は、標準に従ってこの方法を実装しています。 nestacpe 6.0に実装されているプロパティイゼラブル()メソッドは、プロトタイプチェーンを考慮しています。このアプローチは望ましいものですが、標準と競合するため、Netscape 6.1はIE 5.5に一致するように変更しました。標準にこのエラーがあるため、この方法はそれほど有用ではありません。
コードコピーは次のとおりです。
<スクリプト>
var obj = new object();
obj.title = 'aaa';
obj.funb = function(a、b)
{
アラート(a+b);
}
アラート(obj.title);
obj.funb(1,2);
</script>
これが方法です
******************************
コードコピーは次のとおりです。
<スクリプト言語= "javascript">
関数オブジェクト(値、a、b){
this.title = value;
this.funb = function(){
this.a = a;
this.b = b;
アラート(a+b);
}
}
var obj = new Object( "aaa"、1,2);
アラート(obj.title);
obj.funb();
//ここでオブジェクトに新しいメソッドを追加します
object.prototype.name = "123456";
アラート(obj.name);
</script>
これが別の方法です