Javascript 基础学习-面向对象

编程思想概述

面向过程:凡事亲力亲为,每个过程都要知道(个人作坊)。
面向对象:根据需求找对象,所有的事情对象来做,注重结果(大企业)。
面向对象特性:封装,继承,多态。
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]);
}

猜你喜欢

转载自blog.csdn.net/weixin_42435721/article/details/85019632