Javascript中函数分类&this指向的实例详解

Javascript中函数分类&this指向的实例详解

函数的分类

Javascript中的函数可大致分为以下几类:

1. 全局函数

全局函数是位于全局作用域下的函数,可以被任何地方调用到,其定义方式如下:

function funcName() {
    // 函数体
}

2. 对象方法

对象方法是位于对象中的函数,其可以访问对象中的属性或方法,其定义方式如下:

var obj = {
    name: 'Object Name',
    funcName: function() {
        // 函数体
    }
};

其中funcName即为对象方法。

3. 构造函数

构造函数是被用于实例化对象的函数,构造函数中的this关键字指向实例化对象本身,构造函数的定义方式如下:

function ClassName(param1, param2) {
    this.param1 = param1;
    this.param2 = param2;
    this.funcName = function() {
        // 函数体
    }
}

4. 函数调用

函数调用指的是使用函数的.call()或.apply()方法对函数进行调用,这类函数中的this关键字指向调用者本身,其定义方式如下:

function funcName() {
    // 函数体
}

var obj = {
    name: 'Object Name',
};

funcName.call(obj);

其中this指向的是obj对象。

以上四种函数的例子在下面的代码段中会被详细解释。

this指向的实例详解

在Javascript中,this关键字指向调用函数的对象,而this指向的对象的值在函数被调用时决定,this可以在任何一个对象、函数或使用call()、apply()方法的变量的作用域下使用。

下面的两个例子会详细解释this的用法:

1. 对象中的对象方法

在对象person中定义了一个方法fullName,并且在方法中使用了this关键字来引用对象的属性,代码如下:

var person = {
    firstName: 'John',
    lastName: 'Doe',
    fullName: function() {
        return this.firstName + ' ' + this.lastName;
    }
}

person.fullName(); // John Doe

由于方法fullName被调用时使用了person对象来调用,所以this关键字指向了person对象。

2. 使用call()方法的函数

当一个函数使用.call()方法进行调用时,其第一个参数将会被作为this关键字的值,代码如下:

function funcName() {
    console.log(this.name);
}

var obj = {
    name: 'My Object'
};

funcName.call(obj); // My Object

在上面的代码中,funcName函数使用了.call()方法并传递了obj对象作为第一个参数,这样this关键字就指向了obj对象。

总结

本文介绍了Javascript中函数的分类,即全局函数、对象方法、构造函数和使用函数.call()方法的函数,并且通过两个例子说明了this关键字的用法。在实际开发中,这些知识点会经常用到,对于Javascript开发人员是非常重要的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript中函数分类&this指向的实例详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • DOM基础教程之事件类型

    下面是关于“DOM基础教程之事件类型”的完整攻略: 1. 什么是事件? 事件是指用户在与页面进行交互时所发生的情况,如鼠标点击、键盘敲击、表单提交等。开发者可以通过JavaScript代码来响应这些事件,从而实现与用户进行有效的交互。 2. 事件类型 DOM中常见的事件类型有: 鼠标事件:onclick, ondblclick, onmousedown, o…

    JavaScript 2023年6月10日
    00
  • JavaScript使用闭包模仿块级作用域操作示例

    JavaScript使用闭包模拟块级作用域操作的示例可能是一个新主题。在这里提供一个完整的攻略,包括定义和用法,以及一个具体示例。 什么是闭包 JavaScript中的闭包是一种函数,它可以访问自身作用域之外的变量。实际上,函数创建了一个内部作用域和一个变量对象。这个变量对象包含所有的局部变量,参数等,而且变量对象是由函数的作用域链所确定的。因此,通过访问该…

    JavaScript 2023年6月10日
    00
  • js 发个判断字符串是否为符合标准的函数

    下面我将详细讲解如何用js实现判断字符串是否符合标准的函数。 1. 实现思路 判断一个字符串是否符合标准,我们需要确定一个标准,然后遍历字符串的每一个字符,判断字符是否符合标准。在此基础上,我们可以写出判断字符串是否符合标准的函数,具体步骤如下: 确定标准,例如字符串只能包含数字和字母等。 遍历字符串的每一个字符,判断字符是否符合标准。 如果字符串所有字符都…

    JavaScript 2023年5月28日
    00
  • JS简单获取当前日期和农历日期的方法

    当我们需要在网页中展示当前日期时,可以使用JavaScript来获取当前日期。而获取农历日期则需要用到一些计算方法。下面,我们就来介绍一下JS简单获取当前日期和农历日期的方法。 获取当前日期 方法一:使用Date对象 Date对象是JavaScript中用来处理日期和时间的对象。获取当前日期可以通过创建一个Date对象,并调用其方法来获取。以下是获取当前日期…

    JavaScript 2023年5月27日
    00
  • JavaScript 对象的属性和方法4种不同的类型

    JavaScript对象是一种包含属性和方法的数据结构。在JavaScript中,对象属性和方法有4种不同的类型。 1. 数据属性 数据属性是最简单的属性类型。它是对象的一个简单属性,通常被用来存储数据。数据属性有以下特征: value:属性值 writable:是否可写(true | false) enumerable:是否可枚举(true | false…

    JavaScript 2023年5月27日
    00
  • 微信页面弹出键盘后iframe内容变空白的解决方案

    针对这个问题,我们可以从以下几个方向进行排查: 1. 检查是否存在遮罩问题 可能是弹出键盘时,遮挡了iframe中的内容导致内容变空白。此时,我们可以通过设置索引(z-index)达到弹出层在iframe内容上方的效果,比如将遮罩层的索引设为最大值: .mask { position: fixed; top: 0; left: 0; width: 100%;…

    JavaScript 2023年6月11日
    00
  • Javascript点击其他任意地方隐藏关闭DIV实例

    好的。您想实现的效果是当用户在页面上点击除某个指定的div以外的其它任何地方时,可以将该指定的div隐藏起来。实现这个功能可以使用JavaScript。 下面是实现该功能的完整攻略: 1.在HTML中添加div元素 首先,在HTML文档中添加包含需要隐藏的内容的div元素。例如,下面的代码创建一个div元素: <div id="myDiv&q…

    JavaScript 2023年6月11日
    00
  • javascript操作referer详细解析

    关于JavaScript操作Referer的详细解析 Referer是由HTTP协议定义的一个请求头部信息,它记录了当前请求是从哪个地址跳转过来的。在JavaScript中,我们可以通过document对象的属性来访问Referer值,也可以通过编程的方式来修改Referer值。下面将分别进行讲解。 通过document对象访问Referer值 我们可以通过…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部