<script>
// (function(){
// var i = 1;
// getValue = function(){
// return i;
// }
// setValue = function(x){
// n = x;
// }
// })();
//
//
// function test(x){
// var i = 0;
// return function(){
// return x[i++];
// }
// }
// var next = test(['a','b','c','d']);
// alert(next());a
// alert(next());b
// alert(next());c
// alert(next());d
//
//
// function f(){
// var a = [];
// var i;
// for (i=0;i<3;i++) {
// a[i] = function(){
// return i;
// }
// }
// return a;
// }
// var test = f();
// alert(test[0]());3
// alert(test[1]());3
// alert(test[2]());3
//
//
//
// function f(){
// var a = [];
// var i;
// for (i=0;i<3;i++) {
// a[i] = (function(x){闭包函数中包含函数
// return function(){
// return x;
// }
// })(i)
// }
// return a;
// }
// var test = f();
// alert(test[0]());0
// alert(test[1]());1
// alert(test[2]());2
//
// function f(){
// function test(x){
// return function(){
// return x;
// }
// }
// var a = [];
// var i;
// for (i=0;i<3;i++) {
// a[i]=test(i);
// }
// return a;
// }
// var res = f();
// alert(res[0]());0
// alert(res[1]());1
// alert(res[2]());2
//
//
//
//
//var obj = {};
//console.log(Object.isExtensible(obj));检查是否可扩展
//var a = new Date();
//console.log(Object.isExtensible(a));
//
// obj1 = Object.preventExtensions(obj);设置为不可扩展
// console.log(obj1==obj);
// console.log(Object.isExtensible(obj1));
//Object.defineProperty(obj,'z',{value:1});给对象设置属性
//console.log(z);
//var obj = {
// x:1,
// y:2,
// username:'king'
//}
//
//
//obj.age = 12;
//delete obj.x;
//var o = Object.seal(obj);冻结属性
//
//
//console.log(obj.y);
//console.log(obj.x);
//
//
//
// console.log(Object.isSealed(o));
// console.log(Object.getOwnPropertyDescriptor(obj,'username'));对象的所有属性
//
// var obj = {
// prop:function(){},
// foo:'king'
// }
// obj.test = 'this is a test';
// delete obj.prop;
// var o = Object.freeze(obj);浅冻结对象
// console.log(Object.isFrozen(o));
//
//
// var obj1 = {
// internal:{}
// };
// Object.freeze(obj1);
// obj1.internal.x = 1;
// console.log(obj1.internal.x);
// 深度冻结对象
// function deepFreeze(obj){
// var prop,propKey;
// Object.freeze(obj);
// for(propKey in obj ){
// prop = obj[propKey];
// if(!obj.hasOwnProperty(propKey)||!(typeof prop === 'object')||Object.isFrozen(prop))){
// continue;
// }
// deepFreeze(prop);
// }
// }
//
//1.一个对象默认是可扩展的非冻结的
//2.一个不可扩展的对象同时也是一个冻结的对象
//
//var arr = ['a','b','c'];
//console.log(Object.getOwnPropertyNames(arr));
list对象上的属性
//
//console.log(Object.keys(arr));
对象属性的键名
//
//
//var obj = {
// 0:'d',
// 1:'e',
// 2:'f'
//}
//console.log(Object.keys(obj));
////
//var obj1 = Object.create({},{
// getFoo:{
// value:function(){
// return this.foo;
// }
// }
//});
//
//obj1.foo = 123;
//console.log(Object.getOwnPropertyNames(obj1));
//console.log(Object.keys(obj1));
//obj = {
// name:'king',
// age:12
//}
//
//
//console.log(Object.getOwnPropertyDescriptor(obj,'name'));
//var obj = new Object;
//console.log(obj.constructor == Object);
//var obj1 = new Array;
//console.log(obj1.constructor == Array);
//function Test(){}
//
//var f = new Test();
//console.log(f.constructor);
//console.log(f.toString());
//var toString = Object.prototype.toString;
//console.log(Object.toString.call(new Date));
</script>
js闭包及object练习
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- HTML 学习笔记 May 11,2017 构造函数、成员函数详解、object类、闭包、成员函数再说明、聪明的猪...
- 一、闭包的含义 官方对闭包的解释:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也...
- 闭包 (closure) 概念 闭包是函数(内层)和声明该函数的词法环境的组合 闭包 外层返回内层 总之 内层在...