对象

Posted 永阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象相关的知识,希望对你有一定的参考价值。

基本特征:面向对象编程有三个基本特征:封装、继承、多态;

面向对象思想javascript 语言是通过一种叫做 原型(prototype)的方式来实现面向对象编程的。对象(object)则是依靠 构造器(constructor)利用 原型(prototype)构造出来的;

属性类型:数据属性、访问器属性

       数据属性:包含一个数据值的位置,可以读取和写入;包括4个描述其行为的特性: configurable、enumerable、writeable、value

       要想修改属性默认的特征:使用Object.defineProperty()  接收三个参数,属性所在对象、属性的名字、修改的描述符对象;

       访问器属性:包含一对儿getter和setter函数,读取访问器属性时,调用getter函数,这个函数负责返回有效的值;写入访问器属性时,调用setter函数并传入新值;

        访问器属性有4个特性:configurable、enumerable、get、set、

        访问器属性不能直接定义,必须使用,Object.defineProperty()

       

 var person={
        _year:2018,       //直接定义数据属性_year
        num:1
    };
    console.log("这是开始:"+person._year);
    Object.defineProperty(person,"year",{    //使用Object.defineProperty()定义访问器属性year
        get:function(){
            return this._year;
        },
        set:function(newvalue){
            if(newvalue>2018){
                this._year=200;
                this.num+=newvalue-2018;
            }
        }
    });
    person.year=2020;
    console.log(person.num);       //3
    console.log(person._year);     //200   

 

 定义多个属性 Object.defineProperties()  接收两个参数:要添加或修改属性的对象    要添加的属性对象

var school={};
    Object.defineProperties(school,{
        _year:{                   //定义两个数据属性
            value:100
        },
        num:{
            value:2
        },
        year:{                    //定义一个访问器属性 year            
            get:function(){
                return 200;
            },
            set:function(newvalue){
                this._year=newvalue;
                this.num+=1;
            }
        }
    });

  读取属性的特性 :Object.getOwnPropertyDescriptor()   接收两个参数,属性所在对象  和要读取描述符的属性名称;

 

以上是关于对象的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用嵌套片段和动画对象

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段