当前位置: 首页 > 面试题库 >

Javascript中的几乎所有内容都是一个对象吗?

屠振濂
2023-03-14
问题内容

我在许多JavaScript简介中都读了很多。我只是不明白。我一直认为对象是具有方法和属性的东西。我了解数组,因为它具有键值对。“字符串”或“数字”或“函数”怎么样?上面列出的这些东西对我来说就像是功能。这意味着您输入了一些东西,然后得到了一些东西。您实际上并没有获得访问属性或其他任何内容。在数组或“对象”列表中没有使用点符号。

是否有人用点符号编写每个方法的示例示例,这些示例的方法和属性正在访问中?我怀疑对象的定义可能受到限制,因为我确实开始学习JavaScript。


问题答案:

没错,在javascript中,几乎所有东西都是对象。但是这些对象与我们在Java,C
++或其他常规语言中看到的有所不同。JS中的对象只是具有键值对的哈希表。键始终是字符串,值可以是任何东西,包括字符串,整数,布尔值,函数,其他对象等。因此,我可以创建一个新的对象,如下所示:

var obj = {}; // this is not the only way to create an object in JS

并在其中添加新的键值对:

obj['message'] = 'Hello'; // you can always attach new properties to an object externally

要么

obj.message = 'Hello';

同样,如果我想向该对象添加新功能:

obj['showMessage'] = function(){
    alert(this['message']);
}

要么

obj.showMessage = function() {
    alert(this.message);
}

现在,每当我调用此函数时,它将显示带有消息的弹出窗口:

obj.showMessage();

数组只是那些能够包含值列表的对象:

var arr = [32, 33, 34, 35]; // one way of creating arrays in JS

尽管您始终可以使用任何对象来存储值,但是使用数组可以存储它们而无需将键与每个值相关联。因此,您可以使用其索引访问项目:

alert(arr[1]); // this would show 33

数组对象与JS中的任何其他对象一样,具有其属性,例如:

alert(arr.length); // this would show 4


 类似资料:
  • 问题内容: 我在另一个Stack Overflow问题上读到,Python就像Ruby一样,因为它涉及到“一切都是对象”,而Python中的一切都是对象,就像Ruby一样。 这是真的?Python中的所有对象都是像Ruby这样的对象吗? 两者在这方面有何不同?或者它们真的相同吗?例如,您能拿一个数字来做我所看到的Ruby吗: 可以在Python中以相同的方式完成吗? 问题答案: DiveIntoP

  • 推特上有这样一条推文: 在JavaScript中,所有对象都是真实的(根据规范)。在DOM中,这条规则有一个例外。它是什么?#jsquiz#Fronttrends 有人知道答案吗?

  • 问题内容: 有什么方法可以在JSON中嵌套对象,因此我不必从所有内容中制成数组?为了能够无错误地解析我的对象,我似乎需要这样的结构: 如果我将此对象提取到一个名为“结果”的变量中,则必须像这样访问嵌套的对象: 和 这对我来说似乎很笨拙和多余,如果可能的话,我希望: 和 但是,当一切都是数组时,如何直接使用对象键?在我困惑和未受教育的头脑中,这样的事情似乎更合适: 我可能在这里误解了一些基本知识,但

  • 本文向大家介绍如何删除R中一个或几个以外的所有对象?,包括了如何删除R中一个或几个以外的所有对象?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用rm删除全部或少量对象。 示例 删除所有对象 删除除 删除除x和a以外的所有内容

  • 问题内容: 我想用来编码大量数据,而不必一次将所有数据加载到内存中。 我以为json包中内置了此功能,但事实并非如此。 操场 我目前只是在自己构建json字符串。 操场 有一个更好的方法吗? 如果json.Marshaler像这样,那将是微不足道的。 问题答案: 不幸的是,该程序包还没有办法做到这一点。您现在(手动)执行的操作是执行此操作的最佳方法,而无需修改内置程序包。 如果要打补丁,则可以在e

  • 问题内容: 是否可以使elasticsearch中的所有嵌套对象自动映射为默认嵌套的类型。而不是对象? 问题答案: 是的,您可以在创建索引时使用以下动态模板来做到这一点: