JavaScript: in, hasOwnProperty, delete, for/in
来源:互联网 发布:手机淘宝ar扫一扫 编辑:程序博客网 时间:2024/06/02 07:49
in 运算符
判断对象是否拥有某一属性
只要对象拥有该属性,就会返回true,否则false
var point = { x:1, y:1 };
alert( 'x' in point ); //true
var arr = ['one', 'two'];
alert( 'kang' in arr ); //false
alert( '1' in arr ); //true
alert( 'push' in arr ); //true
var fn = function(){};
fn.prototype.site = 'cnblogs.com';
var obj = new fn();
alert( 'site' in obj ); //true
hasOwnProperty
判断对象是否具有某一属性。这个属性必须是自己具有的,即非继承的。
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。
var o = {};
o.name = 'object';
alert( o.hasOwnProperty('kang') ); //false: 不存在
alert( o.hasOwnProperty('toString') ); //false: 'toString'方法继承自'Object'
alert( o.hasOwnProperty('name') ); //true
alert( Math.hasOwnProperty("kang") ); //false
alert( Math.hasOwnProperty("cos") ); //true;
alert( Math.hasOwnProperty("toString") ); //false: 'toString'方法继承自'Object'
var base = function(){
this.name = 'Rain Man';
};
base.prototype.site = 'cnblogs.com';
var o = new base();
alert( o.hasOwnProperty('site') ); //false: 是继承的
alert( o.hasOwnProperty('name') ); //true
delete 运算符
删除对象的属性,删除后不能使用 for/in 枚举出删除的属性。
删除数组的元素,删除后数组的 length 不会改变,不可以使用 for/in 枚举出来删除的元素; shift()、pop()、splice()才会真正的删除数组中的元素
var point = { x:1, y:1 };
delete point.x; //{ y:1 }
var arr = ['one', 'two'];
delete arr[0]; //[undefined, 'two']
for/in
枚举对象的属性
对象的一些属性是不可以使用for/in来输出的,例如:内部的,用户自定义的可以,从构造函数prototype中继承的也可以枚举出
var arr = ['one', 'two'];
arr.author = 'rainman';
//不会枚举出数组的push,pop等方法,因为这些方法都是内部的
for( var i in arr ) ist(arr[i]); //'one'、'two'、'rainman'
var Blog = function(){};
Blog.prototype.site = 'cnblogs.com';
var oBlog = new Blog();
for( var i in oBlog ) ist(oBlog[i]); //'cnblogs.com'
var RM = function(){};
RM.prototype = new Blog();
RM.prototype.url = 'http://rainman.cnblogs.com'
var oRM = new RM();
for( var i in oRM ){
ist(i + ':'+ oRM[i]); //'url:http://rainman.cnblogs.com'、site:cnblogs.com
}
- JavaScript: in, hasOwnProperty, delete, for/in
- Javascript中的for-in循环和hasOwnProperty
- Javascript hasOwnProperty 方法 & in 关键字
- javascript--hasOwnProperty()+isPrototypeof()+in方法
- javascript hasOwnProperty(),in操作符
- hasOwnProperty,Object.keys(),propertyIsEnumerable,for-in(loop)
- hasOwnProperty()与for in的区别
- hasOwnProperty()与for in的区别
- Javascript hasOwnProperty 方法 和 in 关键字
- javascript中in和hasOwnProperty区别
- hasOwnProperty() 、in 操作符与 for-in 循环
- JavaScript Prompts for Buttons in Asp:DataGrid for Delete Column
- for in语句中hasOwnProperty过滤原型属性
- JavaScript中typeof,instanceof,hasOwnProperty,in的用法和区别
- JavaScript For...In 声明
- JavaScript For...In
- JavaScript For...In 声明
- javascript - for in
- 二叉树的操作 (数据结构c语言)
- MoveAbsJ在使用时和MOVEJ有什么区别
- 正则表达式元字符
- Junit3.8入门
- 多重背包的二进制分解思想
- JavaScript: in, hasOwnProperty, delete, for/in
- linux man手册
- Mac 配置JDK 7.0
- linux中fork()函数详解
- discuz的注册功能设置
- LeetCode Divide Two Integers
- POJ 2034 Anti-prime Sequences(素数预处理+DFS回溯)
- 老八系统简易调用AJAX
- fuse的作用