编程思想:
面向过程: 凡事亲力亲为,所有的事情的过程都要清楚,注重的是过程
面向对象: 提出需求,找到对象,对象解决这个问题,我们要结果,注重的是结果
面向对象的特性: 封装,继承,多态,(抽象性)
对象: 有属性和方法,具体特指的某个事物
对象: js中就是一组无序的属性的集合
属性----特征
方法----行为
JSON格式的数据,都是键值对,成对的数据
var obj={
name:"小明"
};
var json={
"name":"小明"
};
json的数据实际上就是格式化后的一组字符串的数据
对象设置属性的值的写法:
对象.属性名字=值;----点语法
对象["属性的名字"]=值;-----键值对
对象获取属性的值的写法:
对象.属性
对象["属性"]
遍历对象的写法:
for(var key in 对象){ key---是一个变量,这个变量中存储的是遍历的对象的属性的名字
}
js学习中三种对象:
1.内置对象----js系统自带的对象
Math
Date
String
Array
Object
2.自定义对象---自己定义的构造函数创建的对象
3.浏览器对象---BOM的时候讲
数据类型:
原始数据类型:number,string,boolean,null,undefined,object
基本类型(简单类型,值类型):number,string,boolean
复杂类型(引用类型):object
空类型:undefined,null
基本类型的值在栈上
复杂类型的对象在堆上,地址(引用)在栈上
值类型之间传递的是值
引用类型之间传递的是引用(地址)
*对象分三种: 内置对象,自定义对象,浏览器对象
内置对象:系统提供的
自定义对象:自己写的
浏览器对象:浏览器的
Math 是一个对象,但是不是一个函数
Math对象下的属性和方法都是静态
* 方法:
* Math.ceil()---向上取整
* Math.floor()---向下取整
* Math.Pi----圆周率的值
* Math.Max()---一组数字中的最大值
* Math.Min()---一组数字中的最小值
* Math.abs()----绝对值
* Math.random---随机数字
* Math.sqrt()----开平方
* Math.pow()----一个数字的多少次幂
创建对象的方式:
1.调用系统的构造函数创建对象
对象有属性和行为
创建属性:对象.名字=值;
创建行为:对象.名字=函数;
2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
3.字面量的方式创建对象(工厂模式创建对象)
代码示例:
//创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码
//调动object创建对象
var computer=new Object();
computer.color="red";
computer.weight="32";
computer.pingPai="惠普";
computer.xingHao="x850";
computer.action=function (){
console.log("我可以看电影");
console.log("我可以听音乐");
console.log("我可以打游戏");
console.log("我可以敲代码");
}
console.log( computer.color);
console.log( computer.weight);
console.log( computer.pingPai);
console.log( computer.xingHao);
computer.action();
//创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码
//自定义构造函数创建对象
function Computer(color,weight,pingPai,xingHao){
this.color=color;
this.weight=weight;
this.pingPai=pingPai;
this.xingHao=xingHao
// color="red";
// weight="21";
// pingPai="索尼";
// xingHao="y8huu";
this.action=function(){
console.log("我可以看电影");
console.log("我可以听音乐");
console.log("我可以打游戏");
console.log("我可以敲代码");
}
}
var obj=new Computer("red",32,"惠普","ygh567")
console.log(obj.color);
console.log(obj.weight);
console.log(obj.pingPai);
console.log(obj.xingHao);
obj.action();
//创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码
//工厂模式创建对象
function creatObject(color,weight,xingHao,pingPai){
var obj=new Object;
obj.color=color;
obj.weight=weight;
obj.xingHao=xingHao;
obj.pingPai=pingPai;
obj.action=function(){
console.log("我可以看电影");
console.log("我可以听音乐");
console.log("我可以打游戏");
console.log("我可以敲代码嗷嗷嗷");
}
return obj;
}
var per1=creatObject("yellow",888888,"bv78","华为");
console.log(per1.color);
console.log(per1.weight);
console.log(per1.xingHao);
console.log(per1.pingPai);
per1.action();
* new 的执行过程:----->new的时候,系统做了什么事?
* 1. 开辟空间,存储创建的新的对象
* 2. 把this设置为当前的对象
* 3. 设置属性和方法的值
* 4. 返回当前的新的对象
网友评论