JavaScript 中调用函数的 5 种方法

 2024-02-16 04:01:03  阅读 0

5种调用函数的方法

本文详细介绍了各种函数调用的方法和原理,对于理解函数很有帮助!

、5种调用函数的方式

一次又一次,我发现有错误的代码是由于没有真正理解函数如何工作而导致的(顺便说一句,我写了很多这样的代码)。 具备了函数式编程的特点,当我们选择面对它的时候,它就会成为我们前进的障碍。

作为初学者,我们来测试一下函数调用的五种方法。 从表面上看,我们会认为这些函数与 C# 中的函数非常相似,但稍后我们会发现它们仍然非常重要。 在不同的地方,忽略这些差异无疑会导致难以追踪的bug。 首先,让我们创建一个简单的函数,下面将使用它。 该函数仅返回 this 和两个提供的参数的当前值。

复制代码代码如下:

最常见但不幸的是全局函数调用

在学习过程中,我们学习如何使用上例中的语法来定义函数。

,我们也知道调用这个函数非常简单,我们需要做的就是:

复制代码代码如下:

活跃英语('一', '二');

// => [, '一', '二']

等等。 那是什么

警报( );

/ =>

警报( 。);

// =>

。('一二');

调用引入js文件中的函数_调用js函数失败是什么意思_js函数引用

// => [, '一', '二']

我说最常见的调用方法是不幸的,因为它导致我们声明的函数默认是全局的。 我们都知道全局成员并不是编程的最佳实践。 在这里尤其如此,避免在全局成员中使用它们,你不会后悔的。

函数调用规则1

在没有明确所有者对象的情况下直接调用的函数中,例如 (),this 的值将导致 this 的值成为默认对象(浏览器中的窗口)。

函数调用

现在让我们使用函数作为其方法之一来创建一个简单的对象。 我们将使用 json 来声明一个对象。 我们也将调用这个方法。

复制代码代码如下:

// 这

变量 = {

ty: '这里有一些价值',

:

};

// 制作()

.make('一', '二');

// => [, '一', '二']

// , 使用

['制作']('一', '二');

// => [, '一', '二']

看看这里的区别,this 的值变成了对象本身。 你可能想知道为什么原来的函数定义没有改变。 嗯,函数是这样传入的,函数内部就是一个标准的数据类型,准确的说是一个对象。 您可以传递它们或复制它们。 这就像整个函数连同参数列表和函数体被复制并分配给 make 内部的属性,然后就像定义这样一个函数:

复制代码代码如下:

变量 = {

: '这里有一些价值',

使:(arg1,arg2){

[这个,arg1,arg2];

得到 }

};

函数调用规则2

在方法调用语法中,例如 () 或 obj[''](),this 的值为 obj

这是事件处理代码中错误的主要来源,请查看这些示例

复制代码代码如下:

点击第一个按钮会显示“btn”,因为这是一个方法调用,而这就是它所属的对象(按钮元素)。 点击第二个按钮会显示“”,因为它是直接调用的(不是像obj.().)。这和我们的第三个按钮一样,将事件处理函数直接放在标签中。 所以点击第三个按钮的结果和第二个按钮是一样的。

使用像 JS 这样的 JS 库的优点是,当在那里定义事件处理函数时,JS 库将帮助重写 this 的值,以确保它包含对当前事件源元素的引用。

复制代码代码如下:

//使用

$('#btn1').click( () {

警报(这个.id); // 'this' 将是

js函数引用_调用js函数失败是什么意思_调用引入js文件中的函数

});

如何超载这个值? 继续阅读

另外两个:apply() 和 call()

使用函数越多,您就越发现需要传递函数并在不同的上下文中调用它们,就像在事件处理程序中所做的那样,并且经常需要重置 this 的值。 记住我告诉过你的,函数也是 . 函数对象包含一些预定义的方法,其中两个是 apply() 和 call()。 我们可以使用它们将其应用于重置。

复制代码代码如下:

var = { 年份:2008,型号:'道奇' };

.apply( , [ '一', '二' ] );

// => [, '一', '二']

.call( , '一', '二' );

lxy

// => [, '一', '二']

这两种方法类似,除了以下参数之外。 .apply() 使用数组传递给函数,而 .call() 独立传递这些参数。 在实践中,你会发现apply()在大多数情况下更加方便。

函数调用规则3

如果我们想覆盖 this 的值而不将函数复制到方法,我们可以使用 .apply( obj ) 或 .call( obj )。

构造函数

我不想深入研究 中类型的定义,但此时我们需要知道 中没有类,并且任何

自定义类型需要初始化函数。 使用原型对象(作为初始化函数的属性)来定义类型也是一个好主意。 让我们创建一个简单的类型

复制代码代码如下:

标签: 函数 代码 复制

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码