当前位置: 首页 > 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/145399.html

相关文章:

  • 信誉好的永州网站建设google海外推广
  • html5网站动效怎么做企业微信管理系统
  • 果蔬网站规划建设方案关键词排名工具有哪些
  • 小程序开发教程百度网盘品牌词优化
  • 深圳网站建设公司建网站教程
  • 用easyui 做的网站网站策划报告
  • 衡水网站制作报价自己做seo网站推广
  • 网站的关于我们页面seo课培训
  • 哈尔滨网站公司小红书网络营销策划方案
  • 做简历比较好的网站叫什么软文推广范文
  • 张家口做网站公司2022十大网络营销案例
  • 苹果cms如何做网站品牌营销经典案例
  • 建设规划展览馆网站的优势360推广官网
  • wordpress 制作论坛优优群排名优化软件
  • 企业网站的设计要求有哪些邯郸今日头条最新消息
  • 网站建设需要的人才seo站长工具是什么
  • 风水网站开发企排排官网
  • 网站建设时图片和文字黄山网站seo
  • 南宁手机做网站设计站外引流推广渠道
  • php响应式网站开发教程柳州网站建设
  • 三亚网站怎么制作常用的搜索引擎有哪些?
  • 淘宝客怎么做自己网站推广seo综合查询 站长工具
  • 新闻视频网站开发网络策划与营销
  • 政府网站开发中山网站建设公司
  • 网站开发怎么报价十大seo免费软件
  • 你自己做的网站怎么发布到网上企业网站怎么优化
  • wordpress文章备份北海百度seo
  • 呼家楼做网站的公司哪家好百度浏览器app
  • 做肯德基玻璃门网站软件开发网站
  • 酒网站模板百度seo营销公司