JavaScript:Object属性方法
Object的属性(firebug中没有找到)

var pro={
city:"shanghai",
list:[,,,,]
}
var Person=function(name,age){
this.name=name;
this.age=age;
this.arr=[,,,,];
}
Person.prototype=pro;
var p=new Person("hongda",);
console.log("hasOwnProperty:");
console.log(p.hasOwnProperty("name"))
console.log(p.hasOwnProperty("city"))
console.log("isPrototypeOf:");
console.log(pro.isPrototypeOf(p));
console.log(Person.prototype.isPrototypeOf(p));
console.log("propertyIsEnumerable:");
console.log(p.propertyIsEnumerable("arr"));
console.log(p.propertyIsEnumerable("list"));

Object静态方法:
Object.create
var obj=Object.create({name:"hongda",age:});
console.dir(obj);

Object.getPrototypeOf:
var pp=Object.getPrototypeOf(p);
console.dir(pp);
console.log(pp===pro);

Object.getOwnPropertyDescriptor:
Object.getOwnPropertyNames:
var desc=Object.getOwnPropertyDescriptor(p,"name");
console.dir(desc); var names=Object.getOwnPropertyNames(p);
console.dir(names);

Object.keys(obj)
跟Object.getOwnPropertyNames(obj)差不多,区别就是Object.keys只适用于可枚举的属性,而Object.getOwnPropertyNames返回对象自动的全部属性名称。
具体的可以看链接http://www.cnblogs.com/chollaflower/p/3203210.html
Object.defineProperty:
Object.defineProperty(p, 'english_Name', {
set : function(n){
console.log('set 访问器');
this.nameValue = n; //一个新的属性,如果同样是name的话,就死循环了。
},
get : function(){
console.log('get 访问器');
return 'my english_Name is ' + this.nameValue;
},
// value : 'Tom', //如果在这里有value或writable特性,就会报错:Uncaught TypeError: Invalid property. A property cannot both have accessors and be writable or have a value。
//writable: true,
enumerable: false,
configurable: false
});
p.english_Name="Tom";
console.dir(p);
var desc=Object.getOwnPropertyDescriptor(p,"english_Name");
console.dir(desc);

当value或writable使用时,报错

不可以同set或get同时使用
p.english_Name="Tom“;
不写的话,console.dir(p)不会显示。
之所以显示nameValue是因为在set中设置的。
Object.defineProperties:
var p={};
Object.defineProperties(p, {
sex: {
value: 'boy',
writable: true,
enumerable: false,
configurable: false
},
age2: {
set: function(x) {
this.age2Value = x;
},
get: function() {
return this.age2Value;
}
}
});
console.dir(p);
var desc=Object.getOwnPropertyDescriptor(p,"sex");
console.dir(desc);
console.log(p.hasOwnProperty("sex"));
console.log(p.hasOwnProperty("city"));
console.log(p.hasOwnProperty("age2"));
console.dir(p);
console.log(p.sex);

不清楚为什么console.dir()不能查看到添加的属性。
http://www.cnblogs.com/chollaflower/p/3202731.html
Object.preventExtensions(object)
防止新的属性添加到对象
Object.isExtensible(object)
是否可添加属性到对象
console.log(Object.isExtensible(p)); //true
Object.preventExtensions(p);
console.log(Object.isExtensible(p)); //false
Object.seal(object)
不能添加和删除属性
Object.isSealed(object)
console.log(Object.isSealed(p));//false
Object.seal(p);
console.log(Object.isSealed(p));//true
完全封死对象,可以
Object.freeze(object)
防止现有属性和属性值的修改,并防止新特性的添加。
Object.isFrozen(object)
console.log(Object.isFrozen(p));//false
Object.freeze(p);
console.log(Object.isFrozen(p));//true
http://blog.csdn.net/shyleoking/article/details/7316174
http://www.cnblogs.com/chollaflower/archive/2013/07/20/3203210.html
http://www.cnblogs.com/rexmzk/archive/2012/12/14/2815112.html
http://msdn.microsoft.com/zh-tw/library/kb6te8d3(v=vs.94).aspx
JavaScript:Object属性方法的更多相关文章
- JavaScript Object.defineProperty()方法详解
Object.defineProperty() 方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法 Object.defineProperty(obj, prop ...
- JavaScript:Array属性方法
,,,,]; console.dir(arr); var pro=Object.getPrototypeOf(arr); console.dir(pro); 来一个个的查看数组的属性,方法 1.Arr ...
- Javascript对象属性与方法汇总
Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...
- ECMAScript5 Object的新属性方法
虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都 ...
- javascript Object的新方法
今天复习es6,又看到Object的一堆方法,与es5的表现又有不一致,耗费了一整天,整理一下: 前几天在司徒正美的书里又看到了es5 Object的字眼,为了向下兼容,大神们也是牛逼的整理出一系列i ...
- Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, ...
- JavaScript 复制对象【Object.assign方法无法实现深复制】
在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...
- [转]ECMAScript5 Object的新属性方法
虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都 ...
- javascript学习总结之Object.assign()方法详解
最近再写ES6的文章时候发现自己对Object.assign()方法不太了解,之前也没有接触过所以就就查阅了相关的资料,为了自己以后肯能会用到以及对知识进行巩固,所以在这里记录下自己学习的点点滴滴,毕 ...
随机推荐
- AOP 详解
1. 需求:统计方法执行的性能情况(来源:<精通Spring 4.x>) // 性能监视类 PerformanceMonitor package com.noodles.proxy; pu ...
- GDB调试qemu源码纪录
今天介绍下如何利用gdb调试qemu 1.首先获取qemu源码 获取地址:https://www.qemu.org/ 2.编译安装qemu 进入qemu目录 ./configure --enable- ...
- 【Pyton】【小甲鱼】爬虫4-XXOO
import urllib.request import os def open_url(url): req=urllib.request.Request(url) req.add_header('U ...
- git快速入门 push/clone/reset/merge/切换分支全都有
本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...
- PHPExcel使用-使用PHPExcel导入文件
导入步骤: 1. 实例化excel读取对象 2. 加载excel文件 ----------------> ( 1>. 全部加载. 2>. 选择加载. ) 3. 读取excel文件 - ...
- 加密货币 (Cryptocurrency) 市值 (market capitalization) 列表
https://coinmarketcap.com/all/views/all/ ico 列表 https://www.icoalert.com/?q=&is_v=1 https://www. ...
- L1正则化和L2正则化
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择 L2正则化可以防止模型过拟合(overfitting):一定程度上,L1也可以防止过拟合 一.L1正则化 1.L1正则化 需注意, ...
- Girls Off-White x Air Jordan 1 from JordansUnveil.com
The Jordans Unveil is a hardwood classic, re-imagined for the modern day sneakerhead. It's a hybrid ...
- C++飞机大战
#include<windows.h> #include"resource.h" #include<stdlib.h> #include<time.h ...
- 绘制loss曲线
第一步保存日志文件,用重定向即可: $TOOLS/caffe train --solver=$SOLVERFILE >& |tee out.log 第二步直接绘制: python plo ...