Object.getPrototypeOf(object):调用对象父类原型上的方法;
function Person(){
this.method1 = function(){alert(1)}
}
Person.prototype.method2 = function(){alert(2);} function Man(){
this.m1 = function(){
Object.getPrototypeOf(this).method1();
}
}
Man.prototype = new Person(); Man.prototype.m2 = function(){
Object.getPrototypeOf(this).method2();
} var man = new Man();
man.m1();
man.m2();

Object.getOwnPropertyDescriptor(object, propertyname):获取对象中属性的ECMAScript对象;
var obj = {};

obj.a = "abc";

var descriptor = Object.getOwnPropertyDescriptor(obj, "a");

for(var prop in descriptor){
document.write(prop + ': ' + descriptor[prop]);
document.write("<br />");
} /*
configurable: true
enumerable: true
value: abc
writable: true
*/
Object.defineProperty(object, propertyname, descriptor):将ECMAScript对象设置为对象中的属性.
var obj = {};

obj.a = "abc";

var descriptor = Object.getOwnPropertyDescriptor(obj, "a");
descriptor.writable = false;
Object.defineProperty(obj, "a", descriptor);
for(var prop in descriptor){
document.write(prop + ': ' + descriptor[prop]);
document.write("<br />");
}
/*
configurable: true
enumerable: true
value: abc
writable: false
*/
object.defineProperties(object, descriptors):用 ECMAScript对象 设置为object中多个属性的值.
var obj = {};

obj.a = "abc";

Object.defineProperties(obj,{
a:{
configurable: true,
enumerable: true,
value: 'aaa',
writable: false
}
});
var descriptor = Object.getOwnPropertyDescriptor(obj, "a");
for(var prop in descriptor){
document.write(prop + ': ' + descriptor[prop]);
document.write("<br />");
}
/*
configurable: true
enumerable: true
value: aaa
writable: false
*/
Object.getOwnPropertyNames(object):返回一个由对象属性名组成的数组(包含不可枚举的)
function a(){
this.a='1';
}
a.prototype.b='2';
var c=new a();
c.c='3';
alert(Object.getOwnPropertyNames(c));//a,c
Object.create(prototype, descriptors):建立一个原型为[prototype](必需,可为NULL),[descriptors](可选)为ECMAScript对象的对象.
var a = Object.create({a:1,b:2}, {
c: {
value: "large",
enumerable: true
},
d: {
value: "round",
enumerable: true
}
});
Object.seal(object):锁定对象,无法修改对象的属性,无法加入新的属性.并把ECMAScript对象的configurable设置为false;
var obj = {};

obj.a = "abc";
Object.seal(obj);
var descriptor = Object.getOwnPropertyDescriptor(obj, "a"); for(var prop in descriptor){
document.write(prop + ': ' + descriptor[prop]);
document.write("<br />");
} /*
configurable: false
enumerable: true
value: abc
writable: true
*/
Object.freeze(object):冻结对象,无法修改对象的属性,无法加入新的属性.
(与seal的区别为,freeze会把对象的数据属性的Writable设置为false)
var obj = {};

obj.a = "abc";
Object.freeze(obj);
var descriptor = Object.getOwnPropertyDescriptor(obj, "a"); for(var prop in descriptor){
document.write(prop + ': ' + descriptor[prop]);
document.write("<br />");
} /*
configurable: false
enumerable: true
value: abc
writable: false
*/
Object.preventExtensions(object):避免加新属性加入对象(Extensible设置为false);
var obj = { a: "1"};

Object.preventExtensions(obj);
document.write(Object.isExtensible(obj));//false obj.newProp = 50;
document.write(obj.newProp);//undefined
Object.isSealed(object);
Object.isFrozen(object);
Object.isExtensible(object);

判断对象是否为锁定,冻结,不可扩展的.(如果一个对象是冻结的,那其肯定是密封的);
 

var obj = { a: "1"};
//Object.seal(obj);
Object.freeze(obj);
//Object.preventExtensions(obj); alert(Object.isSealed(obj));
//alert(Object.isFrozen(obj));
//alert(Object.isExtensible(obj));

Object.keys(object):返回一个由对象可枚举的属性组成的数组.

function a(){
this.a='1';
}
var b=new a();
alert(Object.keys(b));//a

 

ES5 object方法整理的更多相关文章

  1. 【AS3】Flash与后台数据交换四种方法整理

    随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...

  2. 常用js方法整理common.js

    项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...

  3. 在WebBrowser中执行javascript脚本的几种方法整理(execScript/InvokeScript/NavigateScript) 附完整源码

    [实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 1 ...

  4. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

  5. Ruby数组方法整理

    数组方法整理 方法列表: all().any().none()和one():测试数组中的所有或部分元素是否满足给定条件.条件可以是语句块中决定,也可以是参数决定 append():等价于push() ...

  6. Vue2.x源码学习笔记-Vue实例的属性和方法整理

    还是先从浏览器直观的感受下实例属性和方法. 实例属性: 对应解释如下: vm._uid // 自增的id vm._isVue // 标示是vue对象,避免被observe vm._renderProx ...

  7. [Guava学习笔记]Basic Utilities: Null, 前置条件, Object方法, 排序, 异常

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3842433.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  8. Tomcat 多项目部署方法整理

    Tomcat 多项目部署方法整理 说明:tomcat-deploy-aaa和tomcat-deploy-bbb是两个不同的web项目,为了方便以下简称aaa和bbb,请先自行创建并跑通 导航: NO1 ...

  9. Javascript Array 方法整理

    Javascript Array 方法整理 Javascript 数组相关方法 说明 大多数其它编程语言不允许改变数组大小,越界访问索引会报错,但是 javascript不会报错,不过不建议直接修改a ...

随机推荐

  1. 报错The sandbox is not in sync with the Podfile.lock

    clone下来的项目,运行的时候报错 diff: /../Podfile.lock: No such file or directory diff: Manifest.lock: No such fi ...

  2. NameError: name 'unicode' is not defined

    更改Unicode为str 然后重新setup install

  3. jstack Dump 日志文件中的线程状态(转)

    jstack Dump 日志文件中的线程状态 dump 文件里,值得关注的线程状态有: 死锁,Deadlock(重点关注)  执行中,Runnable 等待资源,Waiting on conditio ...

  4. Sql数据库收缩 语句特别快

    数据库在收缩的时候..使用菜单 >> 任务 >> 收缩 >> 文件 >> 数据,  特别慢..还会报错失败.. 但使用脚本 USE [dbName] G ...

  5. Android中Service与多个Activity通信

    由于项目需要,我们有时候需要在service中处理耗时操作,然后将结果发送给activity以更新状态.通常情况下,我们只需要在一个service与一个activity之间通信,通常这种情况下,我们使 ...

  6. fix the issue that disk space is not the size that aws ec2 have.

    在申请aws ec2时,按照向导,在选择存储的时候默认硬盘大小是 8 G,这时候可以根据自己的需要输入一个合适的数字,例如100.完成向导并启动ec2 instance 后登陆机器.使用命令: df ...

  7. Python学习--猫眼电影TOP100榜单抓取

    import requests import re import json import time def get_one_page(url): headers={'User-Agent':'Mozi ...

  8. eclipse中修改tomcat的配置,解决全局性的get提交乱码问题

    在项目中如果页面提交方式为get的时候,中文会出现乱码. 为了解决乱码问题我们有两种办法. 第一种:在程序中加入get提交乱码的解决 String username = new String(user ...

  9. bootstrap table 以及xEdittable的应用

    以前一直没有用过  bootstrap  表格框架,因为项目css框架用的是bootstrap,为考虑到统一性的原因,所以选用了这个框架 步骤: 第一步:引用 <link href=" ...

  10. clojure学习笔记(一)

    下载地址 需要安装xmind打开 http://pan.baidu.com/s/1dDxKj1B