JS对象笔记

Posted

tags:

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

#编程范式
 
##1、命令式
- 面向过程
- 面向对象(OO,Object-Oriented)

##2、声明式
- DSL:只要预期结果(例如:html、css)
- 函数式:没有副作用,可以解决并发问题


#js中对象
- 原生:符合ES(ECMAScript)规范
- 内置:有ES内部提供的
- 宿主:依赖浏览器的对象(BOM)
###类
面向对象的语言一个标志,是具有相同属性和方法的对象的集合,是对象的抽象(对象是类的实例)。

###js中没有类的概念,每个对象都是基于一个原型(原型也是一个对象):
**对象→原型→object→Null**

添加属性和方法在原型链上(对象.prototype可以访问其原型)后面的对象会“继承”你添加的属性和方法

#对象的创建
##对象字面量(语法糖:独特的,不需要重复的)
例子:


        var person={
            name:"张三",
             age:12,
            sayHi:function(){
                alert("我是"+this.name+"你好!!");
            }
        }


像这样创建多个对象时就会显得很麻烦,重复创建!!!

##构造函数(类似与类)+原型
例子:
        
        //声明构造函数
        let Student=function(a(参数)···){
            this.name=a;
            this.sayHi=function(){
                alert("我是"+this.name+"你好!!");
            }
        }
        //创建对象
        let student1=new(重点) Student("三毛");
        
        
        访问原型:
        Student.prototype.sayHi=function(){
                alert("我是"+this.name+"你好!!");
            }
        这样子,以后的对象都会有这个方法!!

##访问对象属性
###.运算符
- 对于(.)运算符来说右侧必须是一个以属性名称命名的简单标识符,标识符必须直接出现在程序里,不是数据类型因此无法修改他们。

        var author=book.author;
        var name=author.name;


###[ ]运算符
- 对于([])运算符来说方括号里必须是一个计算结果为字符串的表达式,这个字符串就是属性名字。字符串是js数据类型,所以在程序运行时可以修改和创建他们。

        var author=book[‘author‘];

        for(let i=0;i<4;i++){
            addr=person[i+"name"];
        }


//for in 可以用于遍历出对象的属性,但是该方法仅仅只会遍历出可枚举属性
由JS核心定义的方法都是不可枚举的,例如toString()。但是代码中定义的属性都是可枚举的(可通过特殊定义为不可枚举的)


        for(let k in person){
                person[k];
        }




















































































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

笔记——JS的对象复制

JS笔记加强版3

js面向对象笔记

5月15日上课笔记-js中 location对象的属性document对象js内置对象Date事件对象

JS对象笔记

Node.js笔记