JS面向(基于)对象编程笔记

1.澄清概念
js中基于对象==js面向对象
js中没有类class,但是它取了一个新的名字叫原型对象,因此类==原型对象

2.为什么需要对象
问题提出:张老太养了两只猫,试编写程序当用户输入小猫名字时,对应显示猫的名字、年龄、颜色。

var cat1_name="小白";
var cat1_age=3;
var cat1_color="白色"//以上传统方法比较麻烦
//解决方法,在猫的属性集中创建一种新的数据类(原型对象/类),用面向对象的方法来解决上面的问题
//这里就是一个Cat类
function Cat(){
}
//调用时注意
//Cat(); //函数
var cat1=new Cat();//类,这时cat1就是一个对象(实例)
cat.name="小白";
cat1.age=3;
cat1.color="白色";
//打印出来
window.alert(cat1.name+cat1.age+cat1.color);

从上面代码中我们可以看出:
(1)js中的对象的属性可以动态的添加。
(2)属性没有限制。

3.类(原型对象)和对象的区别和联系
(1)类是抽象的,概念的,代表一类事物,比如人,猫…
(2)对象是具体的,实际的,代表一个具体事物。
(3)类是对象实例的模板,对象实例是类的一个个体。

4.创建对象的方式有五种
(1)工厂方法-使用new object创建对象并添加相关属性;
(2)使用构造函数来定义类(原型对象);
(3)使用prototype;
(4)构造函数及原型混合方式;
(5)动态原型方式;
先使用构造函数来定义类,然后再创建对象实例:
基本语法:

function 类名/原型对象名(){
}

创建对象:

var 对象名=new类名();

5.现在对对象特别说明:
(1)js中一切都是对象

function Person(){}
var a=new Person();
window.alert(a.constructor); //a对象实例的构造函数是function Person(){}
window.alert(typeof a);   //a的类型是什么

var b=123;
window.alert(b.constructor); //a对象实例的构造函数是function Number(){}
window.alert(typeof b);   //a的类型是什么

(2)类(原型对象)其实也是对象,它实际上是Function类的一个实例,通过类我们可以创建自己的对象实例,可以通过下面代码说明。

function Person(){}
var a=new Person();
window.alert(Person.constructor);//Person对象的构造函数是function Function(){}

6.如何判断一个对象实例是不是Person类型?

if(a instanceof Person){
window.alert("a是person");
}

if(a.constructor==Person){
window.alert("a是person");
}

7.补充说明(带var和不带var的区别)

//全局变量
var abc=89;
function test(){
//在函数里不带var则表示使用全局的abc变量
//如果带上var则表示在test()中,定义一个新的abc变量
abc=900;//var abc=900;
}
test();
window.alert(abc);

8.访问对象的属性的方法有两种:
(1)普通方式:对象名.属性名
(2)动态访问:对象名[“属性名”]

9.对象引用问题说明(对象回收机制)
这里写图片描述
js还提供一种方式主动释放对象内存:

delete 对象名.属性名 //这样就会立即释放对象的属性空间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值