编程思想概述
面向过程:凡事亲力亲为,每个过程都要知道(个人作坊)。
面向对象:根据需求找对象,所有的事情对象来做,注重结果(大企业)。
面向对象特性:封装,继承,多态。
JS不是面向对象语言,但是可以模拟面向对象的思想。
JS是一门基于对象的语言。
创建对象
创建对象的三种方式:
1、调用系统构造函数创建对象
这种方式存在两个问题:
一个问题是创建对象代码重复
另外一个是对象类型缺乏区分,大家都是object
var obj=new Object();
//添加属性
obj.name="小姐姐";
obj.sex="女";
obj.age="18";
//添加行为
obj.love=function(){
alert("i love you");
}
// 对象调用
alert(obj.sex);
obj.love();
2、工厂模式创建对象
将创建对象的代码进行封装,解决代码重复问题
function createObject ( name,age ) {
var obj=new object();
obj.name=name;
obj.age=age;
obj.sayHi=function(){
alert("大家好,我叫:"+this.name+"我今年:"+this.age);
}
return obj;
}
// 调用函数创建对象,调用对象方法
var pr1=creatObject("小芳",18);
pr1.sayHi();
var pr2=creatObject("小绿",20);
pr2.sayHi();
3、自定义构造函数创建对象
函数和构造函数的区别在于:名字是不是首字母大写。
解决对象识别问题
function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=function(){
alert("我叫:"+this.name+"我今年:"+this.age);
}
}
var obj=new Person("小明",20);
alert(obj.name);
alert(obj.age);
alert(obj instanceof Person);
4、字面量的方式创建对象
这种方式的缺陷:一次性的对象
var obj={};
obj.name="小白";
obj.age=10;
obj.syaHi=function() {
alert("我是字面量创建的对象");
}
//优化后的写法 把等号变成冒号,中间用逗号隔开
var obj2={
name:"小明",
age:10,
sayHi:function(){
alert("我是字面量创建的对象");
}
}
JS是一门什么样的语言
- 是一门解释性的语言
- 是一门脚本语言
- 是一门弱类型语言,变量申明都用var
- 是一门基于对象的语言
- 是一门动态类型的语言:
1、只有执行到变量的位置,才知道变量是什么类型的。
2、对象通过点来增加属性或者方法
JSON格式数据
对象是一组无序属性集合,属性值可以是任意数据类型
JSON格式也是对象,数据都是成键值对出现
var json={
"name":"小明",
"age":"20",
"sex":"男"
}
alert(json.name);
alert(json["name"]); //JSON格式用这种
// 遍历Json数据
for(var key in json){
alert(ke+"======"+json[key]);
}