Javascript构造函数

构造方法概念:
构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。

Javascript构造方法的特点:
Javascript并不像Java、C#等语言那样支持真正的类。但是在js中可以定义伪类。做到这一点的工具就是构造函数和原型对象。

  1. Javascript中创建对象的语法是在new运算符的后面跟着一个函数的调用。
    例子:
var obj = new Object();

2.运算符new首先创建一个新的没有任何属性的对象,然后调用该函数,把新的对象作为this关键字的值传递。
例子:
代码一:

var date = new Date();

代码二:

var obj = {}; 
var date = Date.call(obj); 

注意:代码一的伪代码的实现就是 代码二

3.构造函数的作用就是初始化一个新创建的对象,并在使用对象前设置对象的属性。如果定义自己的构造函数,只需要编写一个为this添加属性的函数就可以了。
例子:

function Student (name, age) 
{ 
this.studentname = name; 
this.studentage = age; 
} 

4.可以使用new运算符调用这个函数来创建对象的实例
例子:

var stu = new Student (小明,18); 

5.构造函数的返回值
Javascript中的构造函数通常没有返回值。但是,函数是允许有返回值的。如果一个构造函数有一个返回值,则返回的对象成为new表达式的值。在此情况下,作为this的对象将会被抛弃。

生成对象方法一:使用构造函数定义JavaScript对象
例子:

//定义构造函数 
        function School(name, site) 
        { 
            this.schoolname = "学校"; 
            this.schoolsite ="黄土高坡"; 
        } 
        //使用构造函数产生一个JavaScript对象的实例 
        var school = new School();
        alert(school.schoolname);

执行结果:
在这里插入图片描述

构造函数通常可以初始化对象中的一些内容,JavaScript内部提供的一些对象通常需要使用构造函数的方法生成。

生成对象方法二:直接定义创建JavaScript对象
对象可以包含一些属性(函数可以看作带有括号的特殊属性),每个属性有名称和值。名称可以是任何字符串甚至是空。值可以是任何javascript类型,但不能是undefined。

使用定义法定义的对象例子:

 var school = {}; 
        school.schoolname = "学校";//属性
        school.schoolsite = "黄土高坡";//属性
        school.schoolage = 100;//属性
 
        school.startdate = new Date(2005, 12);//对象
        school.objsay = function () { alert(this.schoolname + " say : hello world!") };//方法
        school.objage = function () { var theage = (new Date().getFullYear()) - site.startdate.getFullYear(); alert(this.name + "已经" + theage + "年了!") }//方法

        console.log("schoolname:" + school.schoolname + "\n" +
                    "schoolsite:" + school.schoolsite + "\n" +
                    "schoolage:" + school.schoolage + "\n" +
                    "startdate:" + school.startdate + "\n" +
                    "objsay:" + school.objsay + "\n" +
                    "objage:" + school.objage);

执行结果:
在这里插入图片描述
注意:上面的方法定义了一个school的对象,并且为其定义了三个属性,与两个个方法。
每个属性与函数前面都要加上对象的名称,否则JavaScript无法判断它是属于那个对象的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值