对象对象的一些隐藏函数

原作者:fictiony
来自:蓝色理想
当我们编写一个类的模型时,整理出来,供大家看看,希望大家能有所帮助。
属性:object.constructor
该属性在类的原型中定义。当对象实例被创建,它可以调用对象实例通过__proto__链指向当前类的构造函数,它可以用来确定哪些类的对象属于直接。(不同的实例,实例不限于直接属于对象的类,即使父类返回true)。
{案例}
微量(object.prototype.constructor = =对象); / /真正的输出
var =新对象();
微量(a.constructor = =对象); / /真正的输出
新数组();
微量(b.constructor = = array); / /真正的输出
微量(b.constructor = =对象); / /错误输出
微量(B实例对象); / /真正的输出
属性:对象。__constructor__
属性的功能类似于object.constructor。区别在于它不是在类的原型中定义的,而是在创建对象实例时附加到对象实例。它是用来指向父类的构造函数,即,超(…)这是一样的。__constructor__。电话(这个…)。
{案例}
微量(对象的原型。__constructor__ = =对象); / /错误输出
var =新对象();
微量(a.__constructor__ = =对象); / /真正的输出
新数组();
微量(b.__constructor__ = = array); / /真正的输出
微量(b.__constructor__ = =对象); / /错误输出
方法:Object.isPrototypeOf(classfunc)
此方法用于确定当前对象的对象的__proto__链。这种方法可以用来判断一个类是另一个类的父或子类。
{案例}
微量(Object.prototype.isPrototypeOf(新)对象(真)); / /输出
微量(Object.prototype.isPrototypeOf(新)阵列(真正的)); / /输出
微量(Array.prototype.isPrototypeOf(新)对象(假)); / /输出
微量(object.prototype.isprototypeof(阵列。原型)); / /阵列确定对象类的真实输出
方法:object.ispropertyenumerable(propname)
这种方法是用来确定一个名为propname是当前对象,可以枚举(使用..)。换句话说,无论是可见的(使用assetpropflags全局函数来设置对象的属性是可见的)。
{案例}
var:x:1,y:2 };
assetpropflags(,{Y},1); / / Y是不可见的
微量(a.y); / /可输出2
对于(var i中)跟踪(i);仅输出x
微量(a.ispropertyenumerable(X); / /真实输出)
微量(a.ispropertyenumerable(Y); / /错误输出)
方法:Object.hasOwnProperty(propname)
这种方法是用来确定一个名为propname是当前对象的一个成员,而不是一个__proto__链是从原型的类引用。
{案例}
函数(测试){ }
测试。原型。x=1;
var =新测试();
a.y = 2;
微量(内); / /输出1
微量(a.hasownproperty(X); / /错误输出)
微量(a.y); / /输出2
微量(a.hasownproperty(Y); / /真实输出)
方法:Object.toString()
该方法可以定义对象在转换为String类型时生成的字符串的结果,该字符串一般在类的原型中定义。
{案例}
函数点(x,y){
这个;
这个,y = y;
}
point.prototype.tostring =函数(){
返回{
};
新的点(10, 20);
跟踪(位置+);输出位置为:x:10,y:20 }