JavaScriptでは、データ型は主に原始型と参照タイプに分割されています。すべての参照タイプは、オブジェクトのコピーからのものです。この記事は、Error New Technologyチャネルの編集者によってもたらされたオブジェクトオブジェクトのいくつかの隠された関数の紹介です。見てみましょう!
このプロパティは、クラスのプロトタイプで定義されています。オブジェクトインスタンスが作成された後、__Proto__チェーンを介してオブジェクトインスタンスで呼び出され、現在のクラスのコンストラクターを指すことができます。これにより、どのクラスが直接属するかを決定できます(インスタンスとは異なり、インスタンスはオブジェクトが直接属するクラスに限定されず、親クラスもtrueを返します)。
[例]
trace(object.prototype.constructor == object); //出力true
var a = new object();
trace(a.constructor == object); //出力true
var b = new Array();
trace(b.constructor == array); //出力true
trace(b.constructor == object); // false出力
トレース(bオブジェクトのinstance); //出力true
プロパティ:オブジェクト.__constructor___
このプロパティ関数はobject.constructorに似ています。違いは、クラスのプロトタイプで定義されていないが、オブジェクトインスタンスが作成されたときにオブジェクトインスタンスに添付されていることです。同時に、このプロパティは、スーパーキーワードで親クラスコンストラクターとして使用される場合、暗黙的に呼ばれ、親クラスコンストラクターを指すために使用されます。つまり、スーパー(...)は、この.__コンストラクター__。呼び出し(this、...)に相当します。
[例]
trace(object.prototype .__ constructor__ == object); // false出力
var a = new object();
トレース(a .__ constructor__ == object); //出力true
var b = new Array();
トレース(b .__ constructor__ == array); //出力true
トレース(b .__ constructor__ == object); // false出力
方法:object.isprototypeof(classfunc)
この方法は、現在のオブジェクトがオブジェクトOBJの__Proto__チェーンにあるかどうかを判断するために使用されます。この方法を使用して、クラスが別のクラスの親または子であるかどうかを判断できます。
[例]
trace(object.prototype.isprototypeof(new object())); //出力true
trace(object.prototype.isprototypeof(new Array())); //出力true
trace(array.prototype.isprototypeof(new object())); // false出力
trace(object.prototype.isprototypeof(array.prototype)); //オブジェクトが配列の親クラスであるかどうかを判断する、出力True
方法:object.ispropertyEnumerable(propname)
このメソッドは、Propnameという名前のメンバーが現在のオブジェクトに存在し、列挙できるかどうかを判断するために使用されます。つまり、目に見えるかどうか(AssetPropFlagsグローバル関数を使用してオブジェクトプロパティが表示されるかどうかを設定するかどうかを列挙できます。
[例]
var a = {x:1、y:2};
assetpropflags(a、["y"]、1); // SET Yは見えません
trace(ay); //出力のみ2
for(var i in a)trace(i); //出力xのみ
Trace(a.ispropertyEnumerable( "x")); //出力true
Trace(a.ispropertyEnumerable( "y")); // false出力
方法:object.hasownproperty(propname)
この方法は、__Proto__チェーンを介してクラスのプロトタイプから参照されるのではなく、Propnameという名前のメンバーが現在のオブジェクト自体のメンバーであるかどうかを判断するために使用されます。
[例]
function test(){}
test.prototype.x = 1;
var a = new test();
ay = 2;
トレース(ax); //出力1
trace(a.hasownproperty( "x")); // false出力
trace(ay); //出力2
trace(a.hasownproperty( "y")); //出力true
方法:object.toString()
この方法は、一般にクラスのプロトタイプで定義される文字列型に変換されたときにオブジェクトによって生成される文字列結果を定義できます。
[例]
関数ポイント(x、y){
this.x = x;
this.y = y;
}
point.prototype.toString = function(){
return "[x:" + this.x + "、y:" + this.y + "]";
};
var pos = new Point(10、20);
trace( "Position is" + pos); //出力位置は[x:10、y:20]です
上記は、オブジェクトオブジェクトのいくつかの隠された関数の紹介です。誰もが明確な理解を持っていると思います。技術チャネルに関するより多くの知識は、間違った新しいテクノロジーチャネルにあります!