js面向(基于)对象编程
- 澄清概念:
js中基于对象=面向对象
js中没有类class,但是它取了一个新的名字,叫做原型对象。
- 为什么需要对象?
问题的提出:
描述同一个类型的生物属性,过于麻烦。
解决:
<html> <head> <script> function Cat(){ }//使用构造函数来创建类; var cat1=new Cat(); cat1.color="白色"; cat1.age=3; cat1.name="小白"; //cat1就是一个对象实例; //从上面的代码我们可以看出: /* 1.js中的对象属性,我们可以动态添加; 2.属性没有限制。 */ window.alert(cat1.name); </script> </head> <body> </body> </html>
//定义使用类。
- 类(原型对象)和对象的区别和联系:
(1)类是抽象的概念,代表一类食物;
(2)对象是具体的,代表一个实体;
(3)对象是以类为模板创建的。
创建对象的方式有5种:...
1.用构造函数的方法来定义类:
基本语法:
function 类名/原型对象名() {}
创建对象:
var 对象名=new 类名();
特别说明:
a.js中一切都是对象;
b.判断某个对象是不是某个类型:
if(a instanceof Person) ok;
c. var a=Person(); var b=a; //这里相当于定义了一个引用。
当再定义 b=null; 时,b不再为对象,a不变;
d.delete可以删除某个对象的属性,但是不能删除整个对象。
-------------------------------------------------------------------
This---问题的提出:
在实际编程中,我们希望创建一个对象的同时,这个对象有拥有一定的必要属性,这该怎么办?
使用this来解决:
function Person(){ this.name="abc"; this.age=90; }// 在定义的类的时候就声明某些必要的属性,一般直接赋值.
另外:
function Person(){ var name="abc"; var age=3; //此时这里的name与age属性是私有的。定义var a=Person(); a.name是无法访问到的。 }
特殊说明:
this不能在类定义的外部使用,否则调用者就变成window了。
-------------------------------------------------------------
对象---成员函数: