ECMAScript5新特性之isFrozen、freeze

对象被冻结后:

1 不能添加属性。

2 不能删除属性。

3 不能修改属性。(赋值)

4 不能修改属性描述符。(会抛异常)

var fruit = {
    name : ‘苹果‘,
    desc : ‘红富士‘
};
//
console.log(‘isFrozen‘,Object.isFrozen(fruit)); // false
Object.freeze(fruit);
console.log(‘isFrozen‘,Object.isFrozen(fruit)); // true
//
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));
时间: 2024-10-18 10:34:01

ECMAScript5新特性之isFrozen、freeze的相关文章

ECMASCRIPT5新特性(转载)

Function 1: Object.create 这是一个很重要的改动,现在我们终于可以得到一个原型链干净的对象了.以前要创建一个类 Js代码   function Cat(name) { this.name   = name; this.paws   = 4; this.hungry = false; this.eaten  = []; } Cat.prototype = { constructor : Cat, play        : function () { this.hungry

《深入理解JavaScript》—— ECMAScript5 新特性

(1) 标准库的新功能 1. 元编程 ① 获取和设置原型 -- Object.create() -- Object.getPrototypeOf() ② 通过属性描述符管理属性特性 -- Object.defineProperty() -- Object.defineProperties() -- Object.create() -- Object.getOwnPropertyDescriptor() ③ 列出属性 -- Object.keys() -- Object.getOwnPropert

ECMAScript5新特性之对象篇

1.Ojbect.create(O[,properties]): var Person = {       name   : 'hcc',       hungry : false,       play : function (){                this.hungry = true;                return 'I am playing!';             },       speak : function () {                

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.isExte

ECMAScript5新特性之isSealed、seal

封闭对象后: 1 不能增加.删除属性.2 可以修改属性.3 不能修改属性描述符.会抛异常. var fruit = { name : '苹果', desc : '红富士' }; // console.log('isSealed',Object.isSealed(fruit)); // false Object.seal(fruit); console.log('isSealed',Object.isSealed(fruit)); // true // fruit.address = '烟台';

ECMAScript5新特性之属性描述符读写对象的属性

直接读写.使用Getter/Setter accessors 'use strict';var fruit = {}; Object.defineProperties(fruit,{ 'name' : { configurable : true, enumerable : true, get : function(){ console.log('Getter方法'); return name; }, set : function(val){ console.log('Setter方法'); na

ECMAScriptS 6 | 新特性

新特性概览 参考文章: http://www.cnblogs.com/Wayou/p/es6_new_features.html --------------------------------------------------------- ES6测试引入文件 <<bootstrap.js>> <<traceur.js>> --------------------------------------------------------- let命令 le

各类常用技术和新特性文章链接(会经常更新)

css3新特性 http://kb.cnblogs.com/page/130203/ ECMAScript5 新api: http://blog.csdn.net/shyleoking/article/details/7316174 html5新标签:http://www.cnblogs.com/yuzhongwusan/archive/2011/11/17/2252208.html 8中css水平垂直居中技术详解:http://blog.csdn.net/freshlover/article/

javascript004_ECMA5数组新特性

•对于ECMAscript5这个版本的Array新特性补充: –位置方法:indexOf      lastIndexOf –迭代方法:every  filter   forEach   some    map –缩小方法:reduce    reduceRight <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <