javascript检测属性
javascript 对象可以看做属性的集合。我们可以通过三种方式来判断某个属性是否存在于某个对象中。
1.in操作符
var o={x:1}
"x" in o //True :x是o的属性
"y" in o // False:y不是o的属性
"toString" in o //True 通tostring 从object继承过来的。
2.hasOwnPreperty()方法
var o={x:1}
o.hasOwnPreperty("x") //True x为o的属性
0.hasOwnPreperty("y") //False y部位o的属性
o.hasOwnPreperty("toString") //True 通tostring自object继承过来的。
3.propertyIsEnumerable()为ECMAScript5支持,是hasOwnPreperty()的增强版,此方法,只有检测到自有属性且这个属性的可枚举性为true才为true
var o=inherit({y:2});
o.x=1;
o.propertyIsEnumerable("x") //true o有一个可枚举的自有属性x
o.propertyIsEnumerable("y") //false y是继承来的。
Object.prototype.propertyIsEnumerable("toString"); //false :不可以枚举的。
4.使用!==判断属性是否存是undefined
var o={x:1}
o.x !== undefined; //true :o中有属性
o.y !== undefined; //false:o中没有属性y
o.toString != undefined //true:o中继承了tostring
javascript检测属性的更多相关文章
- JavaScript的检测属性、属性特性、枚举属性
/* 检测属性 检测属性可以通过三种方式 1.通过in运算符 2.通过hasOwnPerperty() 如果给定的属性是继承属性将返回false 3.通过propertyIsEnumerable(): ...
- JavaScript检测实例属性, 原型属性
0.前提 JavaScript对象的属性分为两种存在形态. 一种是存在实例中, 另一是存在原型对象中. 根据上述, 检测属性的时候会出现4种情况 既不存在实例中, 也不存在原型对象中 存在实例中, 不 ...
- Javascript检测浏览器对CSS属性的支持 /* supports */
//检测浏览器对CSS属性的支持 supports = (function() { var div = document.createElement('div'), vendors = 'Khtml ...
- JavaScript检测原始值、引用值、属性
上周写过一篇读书笔记<编写可维护的JavaScript>之编程实践,其中 第8章 避免『空比较』是博主在工作中遇坑较多的雷区,所以特此把该章节重新整理分享,希望大家不再坑队友(>﹏& ...
- JavaScript检测之basevalidate.js
上篇文章「JavaScript检测原始值.引用值.属性」中涉及了大量有用的代码范例,为了让大家更方便的使用这些代码,博主特意把这些代码重新整理并托管到 GitHub,项目地址是:https://git ...
- Javascript检测值
检测原始值用typeof javascript有五种原始类型,分别为字符串.数字.布尔值.null和undefined 判断一个值是什么类型的字符串,可以通过typeof typeof variabl ...
- JavaScript:属性的操作
一.属性的设置和获取 1.属性的设置和获取主要有两种方式: <!DOCTYPE html> <html lang="en"> <head> &l ...
- JavaScript 对象属性
JavaScript 对象属性 属性中的 . 和 [ ](点 和 方括号)的区别 . :取对象自身的属性值: [ ]:括号内容可以是变量: var obj = {}; obj.name = 'Twx ...
- 用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)
如今HTML5 移动应用或 Web app 中越来越普遍的使用了离线浏览技术,所以用 JavaScript 检测浏览器在线/离线状态非常常见. 无论浏览器是否在线,navigator.onLine 属 ...
随机推荐
- Headfirst设计模式的C++实现——工厂方法(Factory Method)
引用原书的一句话:所有的工厂模式都用来封装对象的创建,工厂方法模式通过让子类决定该创建的对象是什么来达到封装的目的. Pizza类及其派生类与上一例相同 PizzaStore.h #ifndef _P ...
- 实体框架(Entity Framework)简介
实体框架(Entity Framework)简介 简称EF,与ADO.NET关系 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R ...
- PL/SQL学习(三)游标
原文参考:http://plsql-tutorial.com/ 两种类型: 隐式: 执行INSERT.UPDATE.DELETE 或者只返回一条结果的SELECT语句时默认创建 ...
- 学习PHP爬虫--《Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)》
<Webbots.Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)> 译者序 前言 第一部分 基础概念和技术 第1章 本书主要内容3 1.1 发现互联网的真 ...
- 在ecshop商品详情页显示供货商
好久没写文章了,隐约记得前几天有人问到这个问题:[如何在ecshop商品详情页面显示该商品的供货商?] 今天有时间整理下,分享给大家. 注:以下修改适用于ecshop2.7.2,其他版本未做测试. 1 ...
- Python正则表达式Regular Expression基本用法
资料来源:http://blog.csdn.net/whycadi/article/details/2011046 直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表 ...
- 提交App Store注意事项1
1.未遵守苹果iOS APP数据储存指导方针. 如果你的App有离线数据下载功能,尤其需要关注这一点.因为离线数据一般占用存储空间比较大,可以被重新下载和重建,但是用户往往希望系统存储空间紧时也依然能 ...
- C++程序的编写和实现
C++程序的编写和实现 一个程序从编写到最后得到运行结果要经历以下一些步骤. 1. 用C++语言编写程序 用高级语言编写的程序称为“源程序”(source program).C++的源程序是以.cpp ...
- python的特殊方法:
__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, ...
- NWERC 2012 Problem J Joint Venture
刚刚开始想的是用二分的方法做,没想到这个题目这么水,直接暴力就行: 代码: #include<cstdio> #include<algorithm> #define maxn ...