js高级面向对象小结(二)

构造函数:是指用来实例化对象(创建对象)
作用:给对象添加属性,初始化属性
使用new关键字创建的对象 对象的类型就是创建这个对象使用的构造函数的函数名
使用{}创建对象 对象的类型一定是object 相当于使用了new Object()
构造函数的注意事项:①函数名首字母大写 ②函数体里面this指向实例化的对象

面向对象三大特性:封装 继承 多态

js 对象就是 键值对的集合:
键值如果是数据( 基本数据, 复合数据, 空数据 ), 就称为属性
如果键值是函数, 那么就称为方法

值类型:是指在内存栈中 直接存储数据的本身;
常见的数据类型:string,boolean,number,null,undefined
引用类型:是指在内存栈中 存储的是数据的内存地址 指向了堆中;
复杂的数据类型: String, Number, Object ,Function,Math,Datre…Array

什么是形参? 什么是实参? 分别在什么时候声明?
形参: 在创建函数时 传递的参数 为形参;
实参: 在调用函数时 传递的参数 为实参.

将值类型作为参数 传递进入函数中改变后,并不会改变值的本身
但是引用类型 当做参数传递时,传递的是地址, 所以会改变初始的数据

注意:每实例化一个对象,该对象获取属性或方法时,
该对象就会在Person构造函数==>Person.prototype==>Object.prototype==>null

所有对象共享神秘对象(构造函数.prototype)内的属性和方法

如果没有设置当前对象的原型,则原型返回undefined

注意:对象的属性,建议写在函数构造体内,如果写在原型中则所有实例化的对象都将访问这些属性,所以原型中不能有属性

对象没有prototype有__proto__,但是函数有prototype和__proto__

你可能感兴趣的:(js高级面向对象小结(二))