自己总结js面向对象

前面的话。

作为一只典型的前端菜鸟,看js高级程序设计的第6章有点艰难。所以用写博客的办法,一边看书一边把自己理解的东西用自己的话总结出来。如果有错误或者歧义的地方,还请指出并包涵。

1.什么是对象?

js中的对象,分为两种形式。举个栗子:

 1 //No.1
 2 
 3 var dog = new Object();
 4 dog.name = "lucky";
 5 dog.age = 1;
 6 dog.sex = "girl";
 7 
 8 dog.sayHello = function(){
 9     alert(this.name+"wangwang~");
10 }
11 
12 //No.2
13 
14 var dog={
15     name:"lucky",
16     age:1,
17     sex:"girl",
18     sayHello:function(){
19         alert(this.name+"wangwang~");    
20 }}

2.属性的类型

对象的属性有自己的特性([[Configurable]]是否能删除或者重新定义属性、[[Enumerable]]是否能通过for循环、[[Writable]]能否改变属性值、[[Value]]属性的数据值),这些特性是实现js引擎用的,在js代码中是无法直接访问。格式特殊。用 " [[]] " 来标识。

默认:前三个设置都为true,[[Value]]默认为当前的属性的值。

改变属性特性。用Object.defineProperty(对象名称,"属性名称",{属性特性:对应值});

举个栗子:

var dog = {};
Object.defindProperty(
    dog,
    "name",
    {
        writable:false,//不可改
        value:"lucky"                
        //configurable,enumerable,writable,value
    }) ;

alert(dog.name);    //lucky
dog.name="lala";
alert(dog.name);    //lucky

注意:如果改变configurable的值为false,会报错。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。