美文网首页
6_1 理解对象

6_1 理解对象

作者: 诺诺诺诺Daddy | 来源:发表于2019-08-26 16:44 被阅读0次
                    //创建object实例的方法创建对象
        var person = new Object();
        person.name = 'jerry';
        person.age = 22;
        person.job = 'Enginner';
        person.sayHi = function(){
            alert('hello'+this.name);
        }
        
        //对象字面量方式创建对象
        var person = {
            name:'jerry',
            age:20,
            job:'Enginner',
            sayHi:function(){
                alert('hello'+this.name);
            }
        }
        
        // 对象中的属性和方法都带有一些特性来定义他们的行为,这些特性还根据属性的不同而不一样, 属性分为数据属性和访问器属性
        // 数据属性:[[Configurable]](表示能否通过delete删除属性从而重新定义属性,或者能否把属性修改为访问器属性.默认为true);
        //      [[Enumeralbe]](能否通过for-in循环属性,默认为true);
        //      [[Writable]](能否修改属性的值.默认为true)
        //      [[Value]](包含属性的数据值,默认为undefined)
        // 要修改属性默认的特性,必须使用object.defineProperty(属性所在对象,属性名称,描述符对象)方法.
        var person1 = {};
        Object.defineProperty(person1,'name',{
            writable:false,
            value:'Petter'
        })
        // alert(person1.name);//Petter
        person1.name = 'Tom';
        // alert(person1.name);//Petter 不可修改
        delete person1.name;
        // alert(person1.name);
        
        
        // 访问器属性不包含数据值,它包含一对(getter 和 setter)函数,都是非必须的.
        // [[Configurable]](表示能否通过delete删除属性从而重新定义属性,或者能否把属性修改为访问器属性.默认为true);
        // [[Enumeralbe]](能否通过for-in循环属性,默认为true);
        // [[Get]] :在读取属性时调用的函数。默认值为 undefined 。
        // [[Set]] :在写入属性时调用的函数。默认值为 undefined 。
        // 访问器属性不能直接定义,必须使用 Object.defineProperty() 来定义
        // Object.getOwnPropertyDescriptor(指定对象,要获取描述符的属性名);方法可以取得给定属性的描述符
        var book = {
            _year:2004,//表示只能通过对象方法访问的属性
            edition:1
        }
        Object.defineProperty(book,'year',{
            get:function(){
                return this._year;
            },
            set:function(newValue){
                if (newValue > 2004) {
                    this._year = newValue;
                    this.edition += newValue - 2004;
                }
            }
        })
        book.year = 2005;
        var a = Object.getOwnPropertyDescriptor(book,'year');//Configurable Enumeralbe Get Set
        console.log(a);
        // alert(book.edition);//2

相关文章

  • 6_1 理解对象

  • 6_1(Static 静态)

    1.可修饰成员方法、成员变量,静态修饰内容被对象所共享 ,存于方法区中 static String country...

  • 面向对象--理解对象

    面向对象(Object-Oriented OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多...

  • 面向对象—理解对象

    什么是对象? 我们可以把ECMAScript的对象想象成散列表,也就是一组名值对,其中值可以是数据和函数。 对象的...

  • Javascript对象

    对象 在JavaScript里几乎所有东西都是对象或者用起来像对象,理解了对象就能够理解JavaScript。对象...

  • day5(12.20) 面向对象的程序设计

    理解对象的属性 理解并创建对象 理解继承 对象的属性 ECMAScript中的对象:一组名值对,其中值可以是数据或...

  • javascript高级程序设计(第6章)-- 面向对象的程序设

    第六章:面向对象的程序设计 本章内容: 理解对象属性 理解并创建对象 理解继承 ECMA-262把对象定义为:"无...

  • 关于js的面向对象的程序设计(第六篇)

    1.理解对象属性 2.理解并创建对象 3.理解继承 对象的定义为:“无序属性的集合,其属性包括基本值,对象和函...

  • JS 对象理解

    简单梳理一下对象的意义: 什么是对象?多个数据的封装体用来保存多个数据的容器一个对象代表现实中的一个事物 为什么要...

  • 理解面向对象

    面向对象是一种软件开发的方法,同类的还有面向过程。面向对象指的是在程序设计中采用Java的封装、继承、多态、六大原...

网友评论

      本文标题:6_1 理解对象

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