javascript - JavaScript 对象究竟是如何工作的?我可以将函数声明为 JavaScript 对象的字段吗?

标签 javascript html json javascript-objects

我是 JavaScript 的新手,我总是以类似旧程序的方式使用它。

现在我正在研究如何用 JavaScript 实现面向对象的范式,我对在教程中找到的这个例子有一些疑问。

我有一个包含以下简单代码的 utility.js 文件:

var steveApp = {};  // Object container

steveApp.person = 'Steve';  // Add a person field to the steveApp object

steveApp.logPerson = function() {
    console.log(steveApp.person);
}

所以我对 exaclty 的工作原理有些怀疑。

我认为首先它定义了一个类似于 空对象 的东西,通过这一行命名为 steveApp:

var steveApp = {};  // Object container

然后我认为.是用来给之前的空对象添加一个字段的,所以我有:

steveApp.person = 'Steve';  

向 steveApp 对象添加一个稳定的人员字段。

最后它做了一件“奇怪”的事情:

steveApp.logPerson = function() {
    console.log(steveApp.person);
}

在我看来,向 steveApp 对象添加一个新字段(名为 logPerson),但该字段不是普通字段(整数、字符串或其他对象),但它是一个执行行为的函数(在控制台中写入日志)。

然后,在另一个 JavaScript 文件中执行以下操作:

steveApp.logPerson();

并且执行了之前的功能。那么它到底是什么意思呢?这意味着在 JavaScript 中,函数可以是对象的字段或什么?

关于为什么要调用这个函数(如果它确实是一个字段)我必须这样做:

steveApp.logPerson();

并且不调用字段名 ?:

steveApp.logPerson;

谢谢

最佳答案

函数是 JavaScript 中的一流对象。可以像对待任何其他类型的数据一样对待它们。

您可以将它们存储在变量中,将它们存储在属性中,将它们作为函数参数传递等。


Abd why to call this function (if it is true that it is a field) I have to do:

steveApp.logPerson();

(zero_or_more_aguments_here) 放在作为函数求值的内容之后是调用 函数的方式。将它们关闭会为您提供函数本身,而不是调用它的结果。

关于javascript - JavaScript 对象究竟是如何工作的?我可以将函数声明为 JavaScript 对象的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418931/

相关文章:

html - 无法使用 Python 将 DOCX 转换为 HTML

javascript - 尝试访问 JSON 数组中的 key

c# - 我应该在哪里插入自定义 DefaultContractResolver JSON.NET?

javascript - 聚合行中值的 ng-grid 总和

javascript - 在Javascript中随机选择对象的可枚举属性

javascript - 更改传单标签的位置

html - Rails 5 - 显示错误消息

javascript - 在vuejs中访问数组内部数组的值

javascript - 客户端重定向问题

Javascript OOP 和类问题