美文网首页Web 前端开发
JS中函数与对象之间的关系

JS中函数与对象之间的关系

作者: 断桥百晓生 | 来源:发表于2018-08-11 14:19 被阅读0次

函数的作用是帮我们编写更少的代码,并阻止我们重复工作。

函数是JavaScript中的主要概念之一,同时函数也是任何编程语言的基本特性。但和一些基于类的语言如Java或PHP不同的是,ES6之前的JavaScript并不遵循基于类的结构,而是遵循基于原型的继承,这很容易会让人感到混乱。

在JavaScript中,函数有一个额外的工作要执行:创建对象。正如我们所知道的那样,JavaScript基于原型的继承,但我们依然需要创建一个对象,这样我们才能够将相关的逻辑组合到一起。

那么我们如何从函数中创建对象呢?使用关键字new。为此,我们需要创建一个被称作构造函数的东西。

函数在本质上是一个对象,它具有两个特殊的属性:名称和代码。如果它被命名,那么名称将存储在name属性中,而我们要执行的代码将存储在代码中。当我们调用函数时,JavaScript将会在代码属性里执行代码段。

写一个简单的函数看看控制台里打印出了什么。

输出结果

在控制台里,Window对象中的example有一个name属性,属性名称为"example"。当我们用new关键字调用这个函数之前,这个函数只保持为普通函数。当使用new关键字调用时,我们调用的是prototype.constructor方法,该方法可以从函数中实例化一个新的对象。

由于函数也是对象的一种,所以我们也可以在example函数中附加一些属性和方法。方法存储在函数的prototype属性中,而不是以单个对象的方式存在的,这些方法对于此函数创建的所有实例对象都是通用的。这是为了将所有方法保存在同一个位置,有助于减少对象的内存占用。

示例代码如下:


let ep = function example(name, age){

    this.name = name;

    this.age = age;

  };

  ep.prototype.sayHi = function(){

    console.log(`my name is ${this.name}, my age is ${this.age}`);

  };

  let ep1 = new ep(1,2);

  console.log(ep1);

查看控制台中输出:

输出结果

相关文章

  • JS中函数与对象之间的关系

    函数的作用是帮我们编写更少的代码,并阻止我们重复工作。 函数是JavaScript中的主要概念之一,同时函数也是任...

  • 2019-05-15 函数与对象

    函数是对象 JS 中对象函数没有关系,JS 之父通过 this 强行使得它们有关系。 obj.fn.call(ob...

  • js中对象与函数的关系

    首先什么是对象?根据W3C上面的解释JS中所有事物都是对象,对象是拥有属性和方法的数据,由此可以看出基本值类型不是...

  • js基础之原型(构造函数、原型和实例之间的那些属性)

    先看一张图!展示了构造函数、原型和实例之间的关系。 从图中可看出,js 中与原型相关的属性:对象有 [[proto...

  • 原型和原型链的简单理解

    原型 在JS中原型就是prototype对象,用来表示类型之间的关系。 原型链 JS中对象和对象之间是有联系的,通...

  • JavaScript原型链

    原型链主要是实例对象和构造函数之间的关系,而基本上所有的js对象都有构造函数,而构造函数又是一个特殊的对象。 Ja...

  • 函数如何在 JS 中是一等公民

    所谓一等公民,就是指函数在 JS 中可以作为变量,函数参数,函数返回值。 JS 中函数是一种特殊的对象。函数与对象...

  • 基本类型和对象的区别

    这篇文章主要介绍JS中基本类型与对象之间的区别。 对象包括普通对象,数组以及函数。普通对象是基本类型的混合,同时其...

  • MySQL数据库

    概述 DB中的表(类)、字段(属性)、函数(方法)、记录(对象)。 关系型DB:存放实体与实体之间关系的DB 非关...

  • Js面向对象进阶

    一.普通对象与函数对象 js中万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Functi...

网友评论

    本文标题:JS中函数与对象之间的关系

    本文链接:https://www.haomeiwen.com/subject/cjrdbftx.html