美文网首页程序员
JavaScript中如何进行属性检测

JavaScript中如何进行属性检测

作者: 河的左岸 | 来源:发表于2017-06-08 09:51 被阅读0次

JavaScript对象可以看做是属性的集合,为了容错处理、健壮性等目的,我们经常会判断它是否存在某个属性。常用的有这几种方法:in, hasOwnProperty(), propertyIsEnumerable(),属性查询。

in

var o = {x:1};
"x"  in o;                 // true
"y"  in o;                 // false
"toString"  in o;          // true:o继承toString属性

hasOwnProperty()

检测是否含有自有属性

 var o = {x:1};
 o.hasOwnProperty("x");    // true
 o.hasOwnProperty("y");    // false
 o.hasOwnProperty("x");    // true:o继承toString属性,而不是自有属性

propertyIsEnumerable()

是hasOwnProperty()的增强版,检测是否含有自有属性并且属性是可枚举的(enumerable attribute 为true)

 var o = inherit({y:2})
 o.x = 1;
 o.propertyIsEnumerable("x")    // true
 o.propertyIsEnumerable("y")    // false:y是继承的
 Object.prototype.propertyIsEnumerable("toString"); // false:不可枚举

相关文章

  • JavaScript中如何进行属性检测

    JavaScript对象可以看做是属性的集合,为了容错处理、健壮性等目的,我们经常会判断它是否存在某个属性。常用的...

  • JavaScript学习笔记7_对象_2对象属性

    属性检测 JavaScript对象是属性的集合,我们经常需要判断某个属性是否存在于某个对象中。JavaScript...

  • JavaScript类型检测

    本篇介绍一下如何检测JavaScript各种类型。 5种原始类型 对象 Function Array 属性 5种原...

  • 2018最新Web前端经典面试试题及答案

    javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof...

  • TypeError: undefined is not an o

    在 ReactNative 项目开发中,起初对组件属性进行检测的时候使用了 defaultProps 属性,但抛出...

  • 【JS】面试题 1

    document load 和 document ready 的区别? JavaScript 中如何检测一个变量是...

  • Web前端经典面试试题及答案1

    JavaScript JavaScript中如何检测一个变量是一个String类型?请写出函数实现 请用js去除字...

  • 前端基础整理

    如何理解JavaScript原型链JavaScript中的每个对象都有一个prototype属性,我们称之为原型,...

  • JavaScript中如何操作属性

    一、什么是属性 属性是对象得一部分。属性包括属性名和属性值。属性名可以是包含空字符串在内的任意字符串,但对象中不能...

  • js的prototype

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解...

网友评论

    本文标题:JavaScript中如何进行属性检测

    本文链接:https://www.haomeiwen.com/subject/wtezfxtx.html