js对象属性相关性(检查属性、枚举属性等)

js对象属性相关性(检查属性、枚举属性等)
1。删除属性

删除运算符可以删除对象的属性。

复制代码代码如下所示:

删除person.age人不再有年龄 / 财产/

删除的人{年龄} / /左右
删除断开的特性和宿主对象之间只是一个连接,和b.x仍然是1后在性质上看删除A.P.

var:{:{ 1 };
var;
console.log(a.p.x); / / 1
删除一个P;
console.log(a.p.x); / / TypeError A P是不确定的
console.log(午饭前); / /未定义
console.log(b.x); / / 1
删除只能删除自己的属性,而不删除继承属性。如果要删除继承属性,则必须从定义属性的原型对象中删除继承属性。当然,它将影响从这个原型继承的所有对象。
函数继承(p){
如果(= NULL){不来自null
把TypeError();
}
如果(对象)创建,如果直接使用此方法
返回object.create(P);
}
var t =型P;
如果(t!= =对象| | T!=函数)要继承以满足的对象类型
把TypeError();
}
函数(f){;定义空构造函数
f.prototype = P; / /继承对象P原型
返回新(f);创建一个f对象,这个对象是从p继承的
}

var obj = { x:1 };
var obj1 =继承(obj);
obj1 y = 2;
console.log(=+obj1。x + y =+ obj1,Y); / / x = 1,y = 2
删除obj1 X;
obj1 Y删除;
console.log(=+obj1。x + y =+ obj1,Y); / / x = 1,y =定义
当然,可配置属性可用于删除。


删除object.prototype; / /不删除配置

变量x=1;
删除此x;不能删除
这个,y=1;
删除y;这可以删除

函数f(){ }
删除此项。不能删除
2。属性提取



内部运算符希望它的左操作数是字符串或者可以转换成字符串,并且预期它的右操作数是一个对象。
VaR数据= {与};
console.log(0数据); / /下标0
console.log(1数据); / / 1可以转换为1
console.log(4数据); / / 123。

var obj = { x:1 };
console.log(X在obj); / /真的
console.log(Y在obj); / /假
console.log(toString在obj); / /真的继承了这种方法因为obj
使用hasownproperty()或()propertyisenumerable -后者是前者的增强

顾明
var obj = { x:1 };
console.log(obj.hasownproperty(X)); / /真的
console.log(obj.hasownproperty(Y)); / /假
console.log(obj.hasownproperty(规则)); / /虚继承的方法因为没有自己的目标
后者只返回TRUE当它检测到作为一个自由的属性和可枚举的属性
var obj = { x:1 };
console.log(obj.propertyisenumerable(X)); / /真的
console.log(obj.propertyisenumerable(Y)); / /假
console.log(obj.propertyisenumerable(规则)); / /虚继承的方法因为没有自己的目标
console.log(object.prototype.propertyisenumerable(规则); / /假)因为原来的toString是不可数。
当然,可以直接用=操作符来判断!
var obj = { x:1 };
console.log(obj X!=未定义的)
console.log(obj。Y!=未定义的)
console.log(obj.tostring!=未定义的)
三.枚举属性
var obj = { x 1,y 2 };
为(P OBJ){
console.log(P); / / X Y
console.log(obj,P); / /未定义未定义
console.log(obj { p }); / / 1 2
}
1分机:

每个对象都有一个原型(原型)、一个类(类)、一个与它相关的可扩展性(可扩展性)。

检测一个对象是否是另一个对象的原型(或在原型链),该isprototypeof()方法可以用
VaR P = { 1 };x: / / P原型对象继承自object.prototype
var o = object.create(P);从P / / O对象继承

console.log(p.isprototypeof(O)); / /真的
console.log(object.prototype.isprototypeof(O)); / /真的
console.log(Object.prototype.isPrototypeOf(P)); / /真的
当然,这isprototypeof()方法是非常相似的实例操作

这是运营商希望其左操作数是一个对象,和右操作数所标识的对象的类。如果左边的对象是类的实例,该表达式返回true,否则返回false
var = x:1 };
console.log(P实例对象); / /真的

日期();
console.log(D是日期); / /真的
console.log(D实例对象); / /真的
console.log(D是数); / /假
2分机:

对象的class属性是表示对象类型信息的字符串。

的toString的总称()方法返回的是对象类的形式} {



复制代码代码如下所示:

var obj = { x 1,y 2 };

console.log(obj.tostring()); / / {物}
因此,要获取对象的类,可以通过返回的字符串使用切片(8,- 1)来查找类字段。


功能类(obj){ / /找到类名
如果(obj = null){
返回null;
}
如果(obj = undefined){
返回未定义;
}
返回object.prototype.tostring.call(obj)。片(8、1);
}

console.log(类(1) / /数);
/ /注意,实际上是这些类型的变量(称为字符串),而不是通过自己的直接调用
/ / console.log((1。toString)); / /错误
var a=1;
console.log(编号(1),ToString()); / / 1
console.log(a.tostring()); / / 1
console.log({ 1 } X:ToString()); / / {物}

console.log(类(1) / /数);
console.log(类()); / /串
console.log(类(乙方)); / /串
console.log(类(空)); / /空
console.log(类(假)); / /布尔
console.log(类({ })); / /对象
console.log(类; / /阵列({ }))
console.log(类(新的日期())); / /日期
函数(f){ }
console.log(类(新f())); / /对象
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部