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对象笔记的主要内容,如果未能解决你的问题,请参考以下文章