zoukankan      html  css  js  c++  java
  • js中属性的特性(getter/setter)

    除了包含名字和值意外属性还包括一些标识它们 可写/可枚举/可配置的特性:

    1 可以通过这些API给圆形对象添加方法,并将它们设置成不可枚举的,这个让它们看起来像内置的方法.

    2 可以通过这些API 给对象定义不能修改或删除的属性, 借此."锁定"这个对象.

      我们可以将存取器属性的getter和setter防范看成属性的特性.

      也可把数据属性的值看成属性的特性.

      可以认为一个属性包含一个名字 和4 个特性 --->[ {值: value},{可写性: writable},{可枚举: enumerable},{可配置性: configurable},]

      存取器没有值 和 可写性.

    Object.getOwnPropertyDescriptor({x:1}, "x"):
    返回: 
    var  o = {};
            Object.defineProperty(o, "x", {
                value: 222,
                writable: true,
                enumerable: false,  // bu可枚举
                configurable: true
            });
            console.log(o.x);   //  222
            console.log(Object.keys(o));   // []
    如果把 writable: false,
    则 普通修改  o.x = 1;   console 以后  结果还是 222 
    但是属性依然是可配置的 
    可以通过  
       Object.defineProperty(o, "x", {
                value: 1,
                writable: false,
                enumerable: false,  // bu可枚举
                configurable: true
            });
    则结果 为 1
     
    ES5中新增的一些数组的操作方法(ES3中简单的pop() push() 就暂时不做解释了)
    1 forEach()  从头至尾遍历数组,尾每个元素调用指定的函数,  参数  function(① 数组元素, ② 元素的索引, ③ 数组本身){}, 
     
    2 map() 将调用的数组每个元素传递给指定的函数 big返回一个数组,它 包含该函数的返回值  array.map(function(item, index, array) { return })
     
    3 filter() 返回的数组元素是调用的数组的一个子集,传递的函数是用来逻辑判定的 改函数返回 true或者false 调用判断函数就行前面两个方法一样, 如果返回true或能转化为true的值,那    么传递给判定函数的元素就是这个子集的成员,它将被添加到一个作为返回值的数组中;
     
    4 every() 和some() 是数组的逻辑判定,他们对数组元素应用指定的函数进行判定, 返回true或者 false
      var ary = [5, 4, 3, 2, 1];
      ary.every(function (x) { return x < 10})   //  =>true  所有的值都 < 10  成立  有一个错 就返回false     some 就是有一个成立 就返回true
     
    5 reduce() 和reduceRight() 使用指定的函数将数组元素进行组合,生成单个值, 这在函数式编程中是常见的操作, 也可以称为 "注入" 和 " 折叠"
     
    var ary = [5, 4, 3, 2, 1];
      var sum = ary.reduce(function(x, y) { return x +y}, 0)  // 数组求和
     
      var product = ary.reduce(function(x, y) { return x *y}, 1)  // 数组求积
      
      var max = ary.reduce(function (x, y) {return (x> y)? x:y;})  // 求最大值
    reduce() 需要两个参数,第一个是执行化简操作的函数, 化简函数的任务就是用某种方法把两个值组合或者化简为一个值, 并返回化简后的值.[未完待续...]
     
     
     
  • 相关阅读:
    导航守卫
    Java内部类详解
    requestAnimationFrame,Web中写动画的另一种选择
    requestAnimationFrame
    Linux下文件的打包、解压缩指令——tar,gzip,bzip2
    selenium的动作链 actionchains
    列表存储内存的两种形式
    使用timeit模块 测试两种方式生成列表的所用的时间
    selenium访问百度 然后获取百度logo的截图
    python 666
  • 原文地址:https://www.cnblogs.com/stevenzhangcy/p/10599985.html
Copyright © 2011-2022 走看看