当前位置: 代码迷 >> 综合 >> JS学习 面向对象
  详细解决方案

JS学习 面向对象

热度:35   发布时间:2024-01-21 16:07:26.0

u      基于对象编程和面向对象编程叫法区分

 

js 中我们可以认为这个叫法一致.

 

 

u      js的面对对象编程的介绍

js是一种支持面向对象编程的脚本语句, 它有继承,封装,多态的特点.

 

 

课程中 基于对象==面向对象  类==原型对象

 

 

u      面向对象编程的引入

一个问题?

张老太养了两只猫猫:一只名字叫小白,今年3岁,白色。

               还有一只叫小花,今年10岁,花色。请编写一个程序,

               当用户输入小猫的名字时,就显示该猫的名字,年龄,

               颜色。如果用户输入的小猫名错误,则显示 张老太没

               有这只猫猫。

 

我们的一个解决方法是 :(js面向对象编程的快速入门)

 

<html>

<head>

<meta http-equiv="content-type"content="text/html;charset=utf-8"/>

 

<script type="text/javascript">

 

       //定义了一个猫类

       function Cat(){

           

       }

       //创建一只猫 [js对象的属性可以动态增加]

       var cat1=new Cat(); //cat1就是一个对象实例

       cat1.name="小白";  //

       cat1.age=3;

       cat1.color="白色"

 

       document.write(cat1.name+"--"+cat1.age+"--"+cat1.color);

 

      

       //特别说明

       // var cat1=new Cat(); //当做类(原型对象使用)

       // Cat(); //当做函数

</script>

 

</html>

 

 

对象公开属性的访问方式有

对象名.属性名;

对象名[’属性名’];

 

 

u      js中自定义类(原型对象)的五种方法

1.     工厂方法

2.     通过构造函数来定义类(最多)

3.     通过prototype 来定义

4.     构造函数 和prototype混合

5.     动态创建对象模式

 

u      js中一切都是对象

 

var i=0;

 

       window.alert(i.constructor);

 

       function Person(){

       }

      

       var p1=new Person();

 

       window.alert(p1.constructor);

 

       window.alert(Person.constructor);

       window.alert(Function.constructor);

 

 

可用通过instanceof 来 判断某个对象实例是不是某个类的对象实例,

案例:

//如何判断一个对象实例是不是某个 类(原型对象)

 

       if(p1 instanceof Dog){

             

              window.alert("p1是Person一个对象实例");

       }else{

              window.alert("p1是Dog一个对象实例");

       }

 

 

u      js的对象在内存中是怎样存在?

 

var a=newPerson();

a.age=10;

a.name=“小明”;

var b=a;



将发现 a.age和b.age 都是60

因为a b指向同一个对象