ECMAScript5新特性之Object.isExtensible、Object.preventExtensions
阻止对象扩展后:
1 不能添加属性。
2 可以修改属性的值。
3 可以删除属性。
4 可以修改属性描述符。

var fruit = {
name : '苹果',
desc : '红富士'
};
//
console.log('isExtensible',Object.isExtensible(fruit)); // true
Object.preventExtensions(fruit);
console.log('isExtensible',Object.isExtensible(fruit)); // false
//
fruit.address = '烟台';
console.log('添加address属性',fruit);
//
fruit.desc = '金帅';
console.log('修改属性',fruit);
//
delete(fruit.desc);
console.log('删除属性',fruit);
//
Object.defineProperty(fruit,'desc',{
enumerable : false
});
console.log('修改属性描述符为不可枚举',Object.keys(fruit));
Object.defineProperty(fruit,'desc',{
enumerable : true
});
console.log('修改属性描述符为可枚举',Object.keys(fruit));
ECMAScript5新特性之Object.isExtensible、Object.preventExtensions的更多相关文章
- 前端开发者进阶之ECMAScript新特性【一】--Object.create
Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数:prototype 必需. 要用作原型的对象. 可以为 nul ...
- ECMAScript新特性【一】--Object.create
Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数: prototype 必需. 要用作原型的对象. 可以为 nu ...
- ECMAScript5新特性总结
虽然ECMAScript5早就成为标准推出来了,但之前因为一直用的是ECMAScript3,并且工作中总是要求兼容IE的低版本,所以用的比较少.如今市场上大多数浏览器都能兼容ECMAScript5(I ...
- ECMASCRIPT5新特性(转载)
Function 1: Object.create 这是一个很重要的改动,现在我们终于可以得到一个原型链干净的对象了.以前要创建一个类 function Cat(name) { this.name ...
- ECMAScript5新特性之获取对象特有的属性
'use strict'; // 父类 function Fruit(){ } Fruit.prototype.name = '水果'; // 子类 function Apple(desc){ thi ...
- ECMAScript5新特性之isFrozen、freeze
对象被冻结后: 1 不能添加属性. 2 不能删除属性. 3 不能修改属性.(赋值) 4 不能修改属性描述符.(会抛异常) var fruit = { name : '苹果', desc : '红富士' ...
- ECMAScript5新特性之isSealed、seal
封闭对象后: 1 不能增加属性. 2 不能删除属性. 3 可以修改属性.(赋值) 4 不能修改属性描述符.(抛异常) var fruit = { name : '苹果', desc : '红富士' } ...
- 前端开发者进阶之ECMAScript新特性--Object.create
前端开发者进阶之ECMAScript新特性[一]--Object.create Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指 ...
- Atitit js版本es5 es6新特性
Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...
随机推荐
- 基于nginx和tengine的tcp反向代理,负载均衡 安装和配置
先下载nginx_tcp_proxy_module模块. wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master ...
- configure: error: You need a C++ compiler for C++ support.
安装pcre包的时候提示缺少c++编译器 报错信息如下: configure: error: You need a C++ compiler for C++ support. 解决办法,使用yum安装 ...
- ORA-03113:通信通道的文件结尾
问题: 用命令startup启动实例时,报错“ORA-03113:通信通道的文件结尾”. 解决: SQL> startup mount ORACLE 例程已经启动. Total System G ...
- javascript的密封对象之seal(),isSealed()方法
EcmaScrip5t中出现了密封对象概念.密封对象不可扩展,而已有的成员的[Configurable]特性被设置为false.也就是说属性和方法是不能删除的.但是是可以修改的. 示例一: var p ...
- Django中间件执行流程
中间件函数是 django 框架为我们预留的函数接口, 让我们可以干预请求和应答的过程 1. 获取浏览器端的IP地址: 使用 request.META[‘REMOTE_ADDR’] 2. 使用中间件 ...
- python判断变量是否为int、字符串、列表、元组、字典等方法
在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断: #!/usr/bin/env pythona = 1b = [1,2,3,4]c = ...
- django返回状态码的页面,指定p地址访问
只有DEBUG = False 才能展示自定义的错误页面,否则djnago会报错,给出提示信息. ps:django DEBUG=FALSE, 会导致不能加载静态文件 ALLOWED_HOSTS ...
- Latex 箭头、下标、符号上下写文字、正方形和三角形
0. hat $abc\hat def$ $ab\widehat{cde}f$ 1. 箭头上的文字 $\underrightarrow{\text{你的文字}}$ ($A \xlefta ...
- jdk配置(备份)
#####set java environment #export JAVA_HOME=/usr/java/jdk1..0_172 #export JRE_HOME=${JAVA_HOME}/jre ...
- shiro 注解式前提
<aop:config proxy-target-class="true"></aop:config> <bean class="org.a ...