自己总结js面向对象

前面的话。

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

1.什么是对象?

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

自己总结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 }}
自己总结js面向对象

2.属性的类型

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

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

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

举个栗子:

自己总结js面向对象
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
自己总结js面向对象

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

自己总结js面向对象

上一篇:usb 拔出插入android log


下一篇:Ajax在调用含有SoapHeader的webservice方法