JavaScript 函数调用
JavaScript 中的代码 function
将在“某物”调用它时执行。
调用 JavaScript 函数
函数执行时,函数内部的代码不会被执行 定义.
函数内部的代码在函数执行时执行 援引.
通常使用术语“调用函数“ 代替 ”调用函数".
通常的说法还有“调用某个函数”、“启动某个函数”或“执行某个函数”。
在本教程中,我们将使用 调用,因为 JavaScript 函数可以在没有被调用的情况下被调用。
将函数作为函数调用
上面的函数不属于任何对象。但在 JavaScript 中始终有一个默认的全局对象。
在 HTML 中,默认的全局对象是 HTML 页面本身,因此上述函数“属于”HTML 页面。
在浏览器中,页面对象就是浏览器窗口。上面的函数自动变为窗口函数。
笔记
这是调用 JavaScript 函数的常见方法,但不是一个很好的做法。
全局变量、方法或函数很容易在全局对象中产生名称冲突和错误。
myFunction() 和 window.myFunction() 是相同的函数:
什么是 这?
在 JavaScript 中, this
关键字指的是目的.
哪个 对象取决于如何this
正在被调用(使用或叫)。
这 this
关键字根据其使用方式指代不同的对象:
在对象方法中, this 指的是目的. |
独自的, this 指的是全局对象. |
在一个函数中, this 指的是全局对象. |
在函数中,在严格模式下, this 是undefined . |
在一次活动中, this 指的是元素 接收该事件的。 |
类似方法 call() , apply() , 和 bind() 可以参考this 到任何物体. |
全局对象
当一个函数在没有所有者对象的情况下被调用时, this
成为全局对象。
在网络浏览器中,全局对象是浏览器窗口。
此示例将窗口对象返回为 this
:
将函数作为全局函数调用,会导致 这 作为全局对象。
使用窗口对象作为变量很容易让你的程序崩溃。
将函数作为方法调用
在 JavaScript 中,您可以将函数定义为对象方法。
下面的示例创建一个对象(我的对象),具有两个属性(名 和姓) 和一种方法 (全名):
例子
const myObject = {
名字:“约翰”,
姓氏:“Doe”,
全名:函数(){
返回 this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // 将返回“John Doe”
亲自尝试 »
这 全名 方法是一个函数。该函数属于对象。我的对象 是该函数的所有者。
那个叫 this
,是“拥有”JavaScript代码的对象。在本例中, this
是我的对象.
测试一下!更改 全名 方法返回的值this
:
例子
const myObject = {
名字:“约翰”,
姓氏:“Doe”,
全名:函数(){
返回这个;
}
}
// 这将返回 [object Object](所有者对象)
我的对象.全名();
亲自尝试 »
将函数作为对象方法调用,会导致 this
成为物体本身。
使用函数构造函数调用函数
如果函数调用之前有 new
关键字,它是一个构造函数调用。
看起来您创建了一个新函数,但由于 JavaScript 函数是对象,因此您实际上创建了一个新对象:
例子
// 这是一个函数构造函数:
函数 myFunction(arg1,arg2){
这个.firstName = arg1;
这个.lastName = arg2;
}
// 这将创建一个新对象
const myObj = new myFunction("John", "Doe");
// 这将返回“John”
myObj.firstName;
亲自尝试 »
构造函数调用会创建一个新对象。新对象会从其构造函数继承属性和方法。
这 this
构造函数中的关键字没有值。
的价值 this
将是调用函数时创建的新对象。