nodejs学习笔记 之prototype

//在nodejs中,类型定义就像定义函数一样,其实该函数就是Student类的构造函数
var Student=function(){
    //如果需要定义该类对象的字段、方法等,需加上this关键字,否则就认为是该函数中的临时变量
    this.Name="张三";
    this.Age=21;
    
    //定义对象方法
    this.show=function(){
        console.log(this.Name+' '+this.Age);
    };
};

//类的成员方法也可以在构造方法外定义,需加上prototype关键字,否则就认为是定义类方法(静态方法)
Student.prototype.showName=function(){
  console.log(this.Name);
};

Student.prototype.showAge=function(){
    console.log(this.Age);
};

//定义类方法(类的静态方法,可直接通过类名访问)
Student.showAll=function(name,age){
    console.log("showAll "+name+' '+age);
};

//定义类的静态字段
Student.TName="李四";

//导出Student类,使其他js文件可以通过require方法类加载该Student模块
module.exports=Student;
 
 
其他js中访问student
 
//使用require方法加载Student模块
var student=require('./Student');
//调用类方法
student.showAll("张思",23);
//展现类静态字段
console.log(student.TName);
student.TName="王武";
console.log(student.TName);

//实例化类对象
var stu=new student();
stu.show();
stu.showName();
stu.showAge();

通过上述例子可以看出,加上关键字prototype表示该变量或者函数是类的成员变量或者成员函数,调用需要new出这个对象。而没有prototype该关键字修饰的变量或者函数,相当于静态变量或者静态函数,可以在外部跟上类名直接调用。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值