1:什么是对象obj?
对象是有若干个键值对组成的,他是一种数据集合。
2:对象的创建方式:
2.1:字面量创建
var o={};
2.2: 关键字创建
var o=new Object();
3:对象的写法格式和注意点:
格式1:
var o={
name:'老栗',
age:18,
job:'student',
fun:function(){
alert(this.name+this.age+this.job)
}
格式2:
var o=new Object();
o.name='老栗';
o.age=18;
o.job='student';
o.fun=function(){
alert(this.name+this.age+this.job)
}
注意:冒号前叫键,冒号后叫值,通过键去找值。
4:什么是面向对象?
我们以前写代码的过程叫,面向过程的写法,现在我们要学习面向对象的写法。
我们学习完,面向对象以后,会按照面向对象的写法,写这个案例。
面向对象是一种思想(oop)。
5:面向对象的特点:
5.1:封装
5.2:多态
5.3:抽象
5.4:继承
#我们学习完面向对象的特点以后,会按照面向对象的思想指导去写我们的demo案例。
#我们到到位以后重要的,常用的框架或者一些重要的库,里面的地产架构都有面向对象在里面。
6:面向对象要学习的知识点:
6.1工厂模式的写法:
6.1.1:为什么学习工厂模式?
工厂模式解决了,多个相同对象代码冗余的问题。
工厂可以提高我们的工作效率,减少代码量。
6.1.2:工厂模式写法步骤:
1:创建一个函数
2:函数里面创建一个对象
3:把函数的形参赋值给对象的属性
4:返回对象
5:把函数赋值给一个变量,调用对象方法
6.1.3:工厂模式写法缺点:
不能识别对象实例化。
7:构造函数模式的写法:
7.1:构造函数解决了不能识别对象实例化的问题。
7.2:构造函数里的this是指向构造函数的。
7.3:new Crea()这个函数就变成了对象类型。
7.4:构造函数名首字母应该大写。
举例:
function Crea(name,age){
this.a=name;
this.b=age;
this.f=function(){
alert(this.a+this.b);
alert(this)//[object Object]
}
}
var t1=new Crea('tom',12)
var t2=new Crea('jicak',123)
8:instanceof 是判断变量是否是这个对象的实例化对象。(判断这个变量是否和这个对象是同源的)
9:实例化和类,对象的概念
function a(){
}
var o=new a();
对象:函数被关键字 new 以后就变成了实例化对象
类:函数被关键字new完以后这个整体(new a())被称之为类
类的作用就是一个模具,通过这个模具可以复制很多对象。
实例化:函数被关键字 new完以后,赋值给一个变量的过程叫实例化对象 var o=new a();
变量被实例化后,就拥有了函数对象里面的属性和方法。
10:什么是原型对象?
1:prototype翻译过来叫原型,他本身的类型是对象。本的中文和类型加起来简称==原型对象
2:原型对象它存在实例对象和函数中。
11:原型对象的作用:
就是可以共享属性和方法。
12:实例对象 函数 原型对象之间的关系?
函数通过关键new赋值给一个变量,这个变量就变成了实例对象。(说白了实例对象是函数new出来的)
函数通过原型prototype生成原型对象(原型对象也是从函数出来的)
原型对象通过constructor可以找到函数
实例对象通过__proto__可以找到原型对象
13:prototype proto constructor的作用?
prototype是对象类型,存储函数当中,作用是共享属性和方法
__proto__是存储实例对象中,作用:实例对象同__proto__可以获取原型对象的属性和方法。
constructor是原型对象下面的属性,作用:指向了函数
14:写面向对象的步骤
把面向过程的js代码改写成面向对象思维js代码
* 1:不能有函数的嵌套 ,如果有把嵌套的函数全部提出来
* 2:可以有全局变量
* 3:把onload改成构造函数
* 4:把全局变量变成属性
* 5:把函数变成方法(在这里指的是Tab)
* 6:不能把获取属性的值写死
* 7:改错
15:删除属性的唯一方法是使用 delete 操作符;设置属性为 undefined 或者 null 并不能真 正的删除属性, 而仅仅是移除了属性和值的关联。
16: hasOwnProperty()方法和 in 操作符的用法
hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性
网友评论