当前位置: 首页 > wzjs >正文

排行榜哪个网站最好友链交换有什么作用

排行榜哪个网站最好,友链交换有什么作用,如何看一个网站的备案在哪里做的,邯郸网站建设纵横在 JavaScript 中,判断对象是否拥有某个属性(区分自身属性和原型链属性)可以使用以下方法: 1. 判断属性是否存在(不区分自身或原型链) 使用 in 操作符,检查对象或其原型链上是否存在指定属性&a…

在 JavaScript 中,判断对象是否拥有某个属性(区分自身属性和原型链属性)可以使用以下方法:


1. 判断属性是否存在(不区分自身或原型链)

使用 in 操作符,检查对象或其原型链上是否存在指定属性:

const obj = { a: 1 };
console.log("a" in obj); // true(自身属性)
console.log("toString" in obj); // true(继承自 Object.prototype)

2. 判断属性是否为自身属性

使用 Object.prototype.hasOwnProperty,检查属性是否直接定义在对象上(不遍历原型链):

const obj = { a: 1 };
console.log(obj.hasOwnProperty("a")); // true(自身属性)
console.log(obj.hasOwnProperty("toString")); // false(原型链属性)
处理边缘情况

若对象可能覆盖或未继承 hasOwnProperty 方法(如 Object.create(null)),需安全调用:

const obj = Object.create(null);
obj.a = 1;// 直接调用 obj.hasOwnProperty 会报错(obj 无该方法)
console.log(Object.prototype.hasOwnProperty.call(obj, "a")); // true

3. 综合判断属性来源

结合 inhasOwnProperty,明确属性的来源:

function checkProperty(obj, key) {if (key in obj) {if (obj.hasOwnProperty(key)) {return "自身属性";} else {return "原型链属性";}} else {return "不存在";}
}const parent = { inheritedProp: "父类属性" };
const child = Object.create(parent);
child.ownProp = "自身属性";console.log(checkProperty(child, "ownProp")); // "自身属性"
console.log(checkProperty(child, "inheritedProp")); // "原型链属性"
console.log(checkProperty(child, "nonexistent")); // "不存在"

4. 其他方法

Object.getOwnPropertyNames()

获取对象所有自身属性名(包括不可枚举属性,不包含原型链属性):

const obj = { a: 1 };
console.log(Object.getOwnPropertyNames(obj)); // ["a"]
Reflect.ownKeys()

获取对象所有自身属性名(包括 Symbol 类型和不可枚举属性):

const obj = { [Symbol("key")]: "value", a: 1 };
console.log(Reflect.ownKeys(obj)); // ["a", Symbol(key)]

总结

方法作用示例
key in obj检查属性是否存在(自身或原型链)"toString" in {}true
obj.hasOwnProperty(key)检查是否为自身属性{}.hasOwnProperty("toString")false
Object.getOwnPropertyNames(obj)获取所有自身属性名(含不可枚举)Object.getOwnPropertyNames([])["length"]
Reflect.ownKeys(obj)获取所有自身属性名(含 Symbol 和不可枚举)Reflect.ownKeys({ [Symbol()]: 1 })[Symbol()]

注意事项

  • 避免直接修改 __proto__
    使用 Object.getPrototypeOf(obj)Object.setPrototypeOf(obj, proto) 替代。
  • 不可枚举属性
    for...inObject.keys() 会忽略不可枚举属性,而 Object.getOwnPropertyNames()Reflect.ownKeys() 会包含它们。
http://www.dtcms.com/wzjs/781381.html

相关文章:

  • 网站开发外包网站设计原则的历史
  • 欧美风格网站源码网站板块模板
  • 网站开发脚本语言做网页设计一个月能挣多少
  • 网站建设北京海淀接私活app有哪些平台
  • 广西专业做网站的公司哪里有网站开发平台
  • 帮传销做网站贵州网站优化公司
  • 设计投稿网站江浙沪做网站的公司
  • 重庆建设网站首页东营住房和城乡建设信息网
  • 淘宝做任务网站怎么学php网站开发
  • 公司网站 仿站什么意思医院网站建设案例
  • 影视采集网站怎么做收录洛阳营销型网站建设
  • 为什么建设旅游网站如何做后台网站的教程
  • 网站色调985短链接生成
  • 番禺建设网站系统简洁ppt模板下载 免费
  • 网站怎么开通微信支付官方网站手机
  • saas建站 彩页东莞公司注册地址
  • 做暧暖ox免费网站wordpress文章自动发布
  • 没有网站怎么做链接视频陕西交通建设集团信息网站
  • 承德优化网站建设网站和网页的概念
  • 西安网站建设聂卫网站前台建设用到哪些工具
  • 安徽建设厅网站进不去长沙互联网网站建设
  • 网站 空间 下载怎么用ip地址做网站
  • 制作网站接单丹阳网站建设价格
  • 新开传奇网站一地方网站如何做
  • 邯郸网站制作哪家好小红书网站建设目的
  • 一般纳税人企业所得税怎么征收太原seo
  • 不通过网站可以做360全景吗中国做出口的网站平台
  • 网站推广常用方法遵义网站制作一般需要多少钱
  • 如何做招聘网站运营微信商城源码
  • 能自己做头像的网站建设局和住建局是一个部门吗