首页  >  文章  >  web前端  >  javascript中什么是函数

javascript中什么是函数

青灯夜游
青灯夜游原创
2021-07-19 17:03:213449浏览

在javascript中,函数(Function)是一段被封装好的代码,可以被反复使用(调用);函数可以是一个值、一个对象、一类数据,还可以是一个表达式,因此函数可以赋值、可以运算、可以拥有属性和方法,甚至可以临时存储值、构造实例等。

javascript中什么是函数

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在 JavaScript 中,对象是一个泛化的概念,任何值都可以转换为对象,以对象的方式进行使用,如数字对象、布尔值对象、字符串对象、类型对象、函数对象、数组对象等,它们都继承 Object 类型对象,拥有共同的基本属性和方法。此外,JavaScript 也允许自定义对象。

从狭义的概念来分析,对象(Object)是最基本的数据类型,是复合型的结构、引用型的数据,它是无序数据集合,对象中每个成员被称为属性。

JavaScript 是基于对象,但不完全面向对象的编程语言。在 JS 面向对象的编程模式中,有两个核心概念: 对象和类。在 ECMAScript6 规范之前,JavaScript 没有类的概念,仅允许通过构造函数来模拟类,通过原型实现继承。

JS创建对象

构造对象

使用 new 运算符调用构造函数,可以构造一个实例对象。具体用法如下:

var objectName = new functionName(args);

参数说明如下:

  • objectName:返回的实例对象。

  • functionName:构造函数,与普通函数基本相同,但是不需要 return 返回值,返回实例对象,在函数内可以使用 this 预先访问。

  • args:实例对象初始化配置参数列表。

示例

下面示例使用不同类型的构造函数定义各种实例。

var o = new Object();  //定义一个空对象
var a = new Array();  //定义一个空数组
var f = new Function();  //定义一个空函数

对象直接量

使用直接量可以快速创建对象,也是最高效、最简便的方法。具体用法如下:

var objectName = {
    属性名1 : 属性值1,
    属性名2 : 属性值2,
    ...
    属性名n : 属性值n
};

在对象直接量中,属性名与属性值之间通过冒号进行分隔,属性值可以是任意类型的数据,属性名可以是 JavaScript 标识符,或者是字符串型表达式。属性于属性之间通过逗号进行分隔,最后一个属性末尾不需要逗号。

示例

下面代码使用对象直接量定义两个对象。

var o = {  //对象直接量
    a : 1,  //定义属性
    b : true  //定义属性
}
var o1 = {  //对象直接量
    "a" : 1,  //定义属性
    "b" : true  //定义属性
}

JavaScript 构造函数

JavaScript 构造函数(Constructor)也称为构造器、类型函数,功能类似对象模板,一个构造函数可以生成任意多个实例,实例对象具有相同的属性、行为特征,但不相等。

定义构造函数

在语法和用法上,构造函数与普通函数没有任何区别。定义构造函数的方法如下:

function 类型名称 (配置参数) {
    this.属性1 = 属性值1;
    this.属性2 = 属性值2;
    ...
    this.方法1 = function () {
        //处理代码
    };
    ...
    //其他代码,可以包含return语句
}

建议构造函数的名称首字母大写,以便与普通函数进行区分。

构造函数有两个显著特点。

  • 函数体内使用 this,引用将要生成的实例对象。

  • 必需使用 new 命令调用函数,生成实例对象。

示例

下面示例演示定义一个构造函数,包含了两个属性和一个方法。

function Point (x, y) {  //构造函数
    this.x = x;  //私有属性
    this.y = y;  //私有属性
    this.sum = function () {  //方法
        return this.x + this.y;
    }
}
在上面代

码中,Point 就是构造函数,它提供模板,用来生成实例对象。

【推荐学习:javascript高级教程

以上是javascript中什么是函数的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn