Javascript基础进阶(十一)instanceof、hasOwnProperty、in

纯粹的笔记

instanceof

用来检测当前实例是否属于某个类

function Fn() {

}
var f = new Fn
f instanceof Fn  // true

instanceof 解决了type无法识别数组和正则的问题

[] instanceof Array // true

in

用来检测当前属性是否属于对象,不管是私有的还是共有的,只要有就返回true

var obj = { name: 'ggr'}
'name' in obj // true
'hasOwnProperty' in obj // true

因为那么在obj的私有属性上,所以为true。hasOwnProperty在obj的公有属性,所以也是true。

hasOwnProperty

用来检测当前这个属性是否是对象的私有属性

var obj = { name: 'ggr'}
obj.hasOwnProperty('name') // true
obj.hasOwnProperty('hasOwnProperty') // false

检测一个属性是否是当前对象的公有属性

  1. 是对象的一个属性
  2. 不是对象的私有属性
// attr 检测的属性
// obj 检测的对象
function hasPubProperty(attr, obj) {
    if ( attr in obj ) {
        if (!obj.hasOwnProperty(attr)) {
            console.log('是公有属性')
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。