javaScript系列
文章目录
一、在JS当中如何定义类?怎么new对象?
1.1 语法格式
定义类的语法:
第一种方式:
function 类名(形参){
}
第二种方式:
类名 = function(形参){
}
创建对象的语法:
new 构造方法名(实参);
1.2 举例
定义类的语法和定义函数的语法相同,但是不同的调用方法会决定它是函数还是类
//定义类
function name(){
}
// 把name当做一个普通的函数来调用.
name();
// 这种方式就表示把name当做一个类来创建对象.
var obj = new name();
二、构造方法和函数的定义
2.1概述
JS中的类的定义,同时又是一个构造函数的定义 , 在JS中类的定义和构造函数的定义是放在一起来完成的
2.2举例
function people(a, b){ // a b是形参,属于局部变量.
// 声明属性 (this表示当前对象)
// people类中有两个属性:name/age
this.name = a;
this.age = b;
}
// 创建对象
var u = new people("zhangsan", 30);
// 访问对象的属性
alert(u.name);
alert(u.age);
2.3函数的定义
function people(a, b){ // a b是形参,属于局部变量.
// 声明属性 (this表示当前对象)
// people类中有两个属性:name/age
this.name = a;
this.age = b;
// 定义函数
this.getAge = function(){
return this.age;
}
}
// 创建对象
var u = new people("zhangsan", 30);
// 调用方法
alert(u.getAge);
三、 prototype属性
prototype属性:作用是给类动态的扩展属性和函数。
3.1 语法格式
类名.prototype.函数名 = function (形参){
}
3.2 举例
<script type="text/javascript">
//定义了一个类
function people(a,b){
//有两个属性:姓名和年龄。
this.name = a;
this.age = b;
}
//通过prototype这个属性来给类动态扩展及函数
people.prototype.getAgt = function(){
alert(this.age);
}
//创建对象
var u = new people("zhangsan",14);
//调用自己动态添加的方法
u.getAgt();
</script>
3.3 拓展
既然Object类型是所有类型的超类,那么任何类型,默认继承Object。 (比如String等)
<script type="text/javascript">
// 给String扩展一个函数
String.prototype.s1 = function(){
alert("这是给String类型扩展的一个函数,叫做s1");
}
//调用
"abc".s1();
</script>
同理 Number、String、Boolean都可以通过这样的方式去进行动态的扩展函数。
总结
1、在JS当中定义类 和new对象。
2、在JS中类的定义和构造函数的定义是放在一起来完成的。
3、prototype属性:作用是给类动态的扩展属性和函数。