zoukankan      html  css  js  c++  java
  • ECMAScript面向对象(一)

    1.什么是对象?面向对象又是什么?

    对象:将现实中的对象,通过用一组无序数据和一组操作方法来对其进行抽象的描述出来,作为一个相互依存的整体。

    function Annimals(){
        this.class="Cat";
        this.voice="miao";
        this.eat=function(){console.log('eat.......');};
        this.run=function(){console.log('run.......');};
    }
    View Code

    面向对象:基于对象进行程序设计,是程序开发的一种程序设计方法。

    2.对象的属性

    这里说的属性其实就是对象中的数据以及两个特殊的方法。将它们划分为:数据属性、访问器属性。

    • 数据属性

     —用于保存数据值。ECMA中对数据属性定义了4个描述其行为的特征

    1. [[ Configurable ]]:能否用delete删除属性,然后重写定义、能否修改属性的特性、能否把属性修改为访问器属性。
    2. [[ Enumerable]]:能否通过for-in返回属性。
    3. [[ Writable]]:是否能修改属性的值。
    4. [[ Value]]:属性的数据值。(默认值:undefined)

      一般由程序员添加的自定义属性它们的默认值都是true。ES5中可以通过Object.defineProperty()方法修改一个数据属性的行为特征。

    var person={};
    Object.defineProperty(person, "name",{
        writable:false,
        value:"JayChou"
    });
    View Code
    • 访问器属性

    其实是对私有数据进行进一步封装,提供一个特殊的属性对对象的私有数据属性进行访问和操作。访问器属性不包含数据值,包含一对getter和seter函数。

    访问器属性有如下特征:

    1. [[ Configurable ]]:能否用delete删除属性,然后重写定义、能否修改属性的特性、能否把属性修改为访问器属性。
    2. [[ Enumerable]]:能否通过for-in返回属性。
    3. [[Get]]:读取私有属性时候调用的接口。(默认值:undefined)
    4. [[Set]]:设置私有属性时候调用的接口。(默认值:undefined)

    同样ES5中可以通过Object.defineProperty()和 Object.getOwnPropertyDescriptor()方法修改或读取一个数据属性的行为特征。(IE9+)

    var book={
        _year:2002,
        edition:1
    };
    
    Object.defineProperty(book,"year",{
    //get和set定义的话要一起定义,不然定义了一个另外一个不起作用
     get:function(){
         return this._year;
     },
     set:function(y){
         this._year=y;
     }
    });
    View Code
  • 相关阅读:
    [译]MongoDB 3.0发布说明
    [译]MongoDb生产环境注意事项
    关于MongoDb Replica Set的故障转移集群——实战篇
    关于MongoDb Replica Set的故障转移集群——理论篇
    MongoDb 2.4 beta新特性——全文索引
    MongoDb Replica Set中使用的地址
    Eval is Devil-MongoDB master/slave上运行Eval遇到的问题
    ss
    SEO
    GruntJs
  • 原文地址:https://www.cnblogs.com/fanglylu/p/6821408.html
Copyright © 2011-2022 走看看