JS学习 面向对象

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指向同一个对象


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值