JavaScript的构造函数

    JavaScript是面向对象的语言,为了编程的方便,所以通常是用构造函数来模拟类来模拟类构造函数就是具有一系列属性和行为作为函数体的函数,可以通过函数参数传入值。下面是构造函数的示例代码

1、普通的构造函数(注意:使用时定义的构造函数名字首字母需大写;实例化函数,然后调用)

function Run(n,num,c){//构造函数,此处的类名必须要大写
    this.name=n;//this不是Run,是指实例化的对象即run_test
    this.age=num;
    this.color=c;
    /*this.say=function(){
	alert(12)
    }*/
}
var run_test=new run("123",4,"blue")//Run函数的实例化方法

//可通过constructor和instanceof 来判断run_test的构造函数的原型是不是Run
//console.log(run_test.constructor==Run);//true;constructor是判断run_test的构造函数是不是Run
//console.log(run_test instanceof Run)
//prototype构造函数的原型,可以将构造函数中公用的部分放在原型里面
Run.prototype.say=function(){
    alert('我是测试程序');
}
run_test.say();	通过实例出来的构造函数去继承	

2、prototype原型链

    原型链:对象(类)的属性 prototype 即是对原型对象的引用,创建实例后,也有属性 __proto__ 指向原型对象,但该属性是隐含的。由于不断创造新对象(实例),一级一级的传递原型对象,即可构成原型链。通过原型链,即可实现继承。

    因为在实际开发的项目中,每类对象的实例对象都有可能会有一些相同的属性,或者相同的功能,如果都写在原型构造函数上,会造成重复的内容,占用更多的内存。

为了解决这种代码的重复:

1) 构造函数都有一个prototype属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。
2)我们可以把那些不变的属性和方法,直接定义在prototype对象上。

操作步骤:

1)将原型对象实例化;

2)将此实例化的对象赋给一个变量;

3)该变量可继承原型对象prototype方法里面所有定义的属性

4)应用到相应的开发项目中

代码实例如下:(计算工资的一个小例子)

function Student(n,m){
    this.name=n;
    this.gongzi=m;
}
Student.prototype.study=function(num){
    var money=parseInt(Math.random()*num*10);
    this.gongzi +=money;
}
Student.prototype.sleep=function(num){
    var money=parseInt(Math.random()*num*2);
    this.gongzi +=money;
}
var zhangsan=new Student("zhangsan",3000);
var wanger=new Student("wanger",1000);
for(var i=0;i<6;i++){//月
    for(var j=0;j<4;j++){//周
        for(var k=0;k<5;k++){//天
            zhangsan.study(5);
            zhangsan.sleep(19);
            wanger.study(17);
            wanger.sleep(7)
        }
    }
}
console.log(zhangsan.gongzi);
console.log(wanger.gongzi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值