JavaScript: in, hasOwnProperty, delete, for/in
2010-08-12 12:52
302 查看
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
判断对象是否具有某一属性。这个属性必须是自己具有的,即非继承的。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 枚举出删除的属性,使用hasOwnProperty()检测该属性返回false。删除数组的元素,删除后数组的 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: in, hasOwnProperty, delete, for/in
- Javascript 中的 in, hasOwnProperty, delete, for/in
- (转)JavaScript: in, hasOwnProperty, delete, for/in
- Javascript中的for-in循环和hasOwnProperty
- for in语句中hasOwnProperty过滤原型属性
- javascript 对象及原型继承有关的属性:constructor、prototype、isPrototypeOf、instanceof、in 、hasOwnProperty 等等
- JavaScript中in和hasOwnProperty区别详解
- To JavaScript Prompts for Buttons in Asp::DataGrid for Delete Column(ZT)
- javascript中in和hasOwnProperty区别
- javascript instanceof、isPrototypeOf、hasOwnProperty、in的使用
- javascript 对象及原型继承有关的属性:constructor、prototype、isPrototypeOf、instanceof、in 、hasOwnProperty 等等
- JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别
- Javascript hasOwnProperty 方法 & in 关键字
- javascript的全局变量寄存空间和delete、hasOwnProperty方法(等于php的unset和isset)
- javascript中in和hasOwnProperty区别
- To JavaScript Prompts for Buttons in Asp::DataGrid for Delete Column(ZT)
- Javascript hasOwnProperty 方法 & in 关键字
- javascript的全局变量寄存空间和delete、hasOwnProperty方法(等于php的unset和isset)
- Javascript hasOwnProperty 方法 和 in 关键字