最适合网络开发者的网站

JS 教程

JS 首页 JS 简介 JS 去哪儿 JS 输出 JS 语句 JS 语法 JS 评论 JS 变量 JS 让 JS 常量 JS 运算符 JS 算术 JS 作业 JS 数据类型 JS 函数 JS 对象 JS 活动 JS 字符串 JS 字符串方法 JS 字符串搜索 JS 字符串模板 JS 数字 JS 数字方法 JS 数组 JS 数组方法 JS 数组排序 JS 数组迭代 JS 数组常量 JS 日期 JS 日期格式 JS 获取日期方法 JS 日期设置方法 JS 数学 JS 随机 JS 布尔值 JS 比较 JS 如果否则 JS 开关 JS 循环 JS 循环 JS 循环 JS 循环 JS 中断 JS 可迭代对象 JS 集 JS 地图 JS Typeof JS 类型转换 JS 按位 JS 正则表达式 JS 错误 JS 作用域 JS 提升 JS 严格模式 JS this 关键字 JS 箭头函数 JS 类 JS 模块 JS JSON JS 调试 JS 风格指南 JS 最佳实践 JS 错误 JS 性能 JS 保留字

JS 版本

JS 版本 JS 2009(ES5) JS 2015(ES6) 小学 2016 小学 2017 小学 2018 JS IE/Edge JS 历史

JS 对象

对象定义 对象属性 对象方法 对象显示 对象访问器 对象构造函数 对象原型 对象可迭代对象 对象集 对象映射 对象引用

JS 函数

函数定义 函数参数 函数调用 函数调用 功能应用 函数绑定 函数闭包

JS 类

课程简介 类继承 静态类

JS 异步

JS 回调 JS 异步 JS 承诺 JS 异步/等待

JS HTML DOM

DOM 简介 DOM 方法 DOM 文档 DOM 元素 DOM HTML DOM 表单 DOM CSS DOM 动画 DOM 事件 DOM 事件监听器 DOM 导航 DOM 节点 DOM 集合 DOM 节点列表

JS 浏览器 BOM

JS 窗口 JS 屏幕 JS 位置 JS 历史 JS 导航器 JS 弹出警告 JS 时机 JS Cookies

JS Web API

Web API 简介 Web 表单 API 网络历史记录 API Web 存储 API Web Worker API Web 获取 API 网络地理定位 API

JS AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 示例

JS JSON

JSON 简介 JSON 语法 JSON 与 XML JSON 数据类型 JSON 解析 JSON 字符串化 JSON 对象 JSON 数组 JSON 服务器 JSON 格式的 PHP JSON 的 HTML JSON JSONP

JS 与 jQuery

jQuery 选择器 jQuery HTML jQuery CSS jQuery DOM

JS 图形

JS 图形 JS 画布 JS Plotly JS Chart.js JS 谷歌图表 JS D3.js

JS 示例

JS 示例 JS HTML DOM JS HTML 输入 JS HTML 对象 JS HTML 事件 JS 浏览器 JS 编辑器 JS 练习 JS 测验 JS 证书

JS 参考

JavaScript 对象 HTML DOM 对象

JavaScript。W3Schools 英文版。初学者课程

尿素

JavaScript 函数调用


JavaScript 中的代码 function 将在“某物”调用它时执行。


调用 JavaScript 函数

函数执行时,函数内部的代码不会被执行 定义.

函数内部的代码在函数执行时执行 援引.

通常使用术语“调用函数“ 代替 ”调用函数".

通常的说法还有“调用某个函数”、“启动某个函数”或“执行某个函数”。

在本教程中,我们将使用 调用,因为 JavaScript 函数可以在没有被调用的情况下被调用。


将函数作为函数调用

例子

函数 myFunction(a,b){
返回 a * b;
}
myFunction(10, 2); // 将返回 20
亲自尝试 »

上面的函数不属于任何对象。但在 JavaScript 中始终有一个默认的全局对象。

在 HTML 中,默认的全局对象是 HTML 页面本身,因此上述函数“属于”HTML 页面。

在浏览器中,页面对象就是浏览器窗口。上面的函数自动变为窗口函数。

笔记

这是调用 JavaScript 函数的常见方法,但不是一个很好的做法。
全局变量、方法或函数很容易在全局对象中产生名称冲突和错误。

myFunction() 和 window.myFunction() 是相同的函数:

例子

函数 myFunction(a,b){
返回 a * b;
}
window.myFunction(10, 2); // 也会返回 20
亲自尝试 »

什么是 ?

在 JavaScript 中, this 关键字指的是目的.

哪个 对象取决于如何this 正在被调用(使用或叫)。

this 关键字根据其使用方式指代不同的对象:

在对象方法中, this 指的是目的.
独自的, this 指的是全局对象.
在一个函数中, this 指的是全局对象.
在函数中,在严格模式下, thisundefined.
在一次活动中, this 指的是元素 接收该事件的。
类似方法 call(), apply(), 和 bind() 可以参考this任何物体.

笔记

this 不是变量。它是一个关键字。您不能更改this.

也可以看看:

JavaScript 教程


全局对象

当一个函数在没有所有者对象的情况下被调用时, this 成为全局对象。

在网络浏览器中,全局对象是浏览器窗口。

此示例将窗口对象返回为 this:

例子

let x = myFunction(); // x 将是窗口对象

函数 myFunction() {
返回这个;
}
亲自尝试 »

将函数作为全局函数调用,会导致 作为全局对象。
使用窗口对象作为变量很容易让你的程序崩溃。


将函数作为方法调用

在 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 将是调用函数时创建的新对象。