美文网首页
js闭包及object练习

js闭包及object练习

作者: 知识分享share | 来源:发表于2018-03-29 12:10 被阅读0次
<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练习

  • JS闭包

    JS闭包 闭包练习

  • 题目

    闭包是什么?闭包的优缺点 this的指向问题? js中的基本类型? (没有object!) typeof 判断类型...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • JS闭包问题(二)

    在之前的JS闭包问题(一)文章中大概介绍了一下JS闭包,同时讲了闭包与变量之间的问题,今天我们继续聊闭包,聊聊闭包...

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • iOS开发之Swift篇(7)—— 闭包

    目录 版本 闭包的定义及使用 尾随闭包 逃逸闭包 版本 Xcode 11.0Swift 5.1 闭包的定义及使用 ...

  • JS闭包入门

    最近有看到朋友的面经里提到的JS闭包的问题,就想研究研究,以下是我对JS闭包的简单理解。 到底什么是JS闭包? 定...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

网友评论

      本文标题:js闭包及object练习

      本文链接:https://www.haomeiwen.com/subject/mfdmcftx.html