【问题标题】:Am i thinking clearly here in creating a new object?我在创建一个新对象时是否在这里清楚地思考?
【发布时间】:2020-11-27 04:24:48
【问题描述】:
let person = {

name:"kevin",
eyeColor:"blue",
age: 34,
address: {

street: "12 havering road",
town: "romford", 

house: {
type: "terraced",
bedrooms: 3,

}
},
updateAge: function () { 

let age = ++person.age;
return age;

}
};

console.log(person.updateAge());
let details = person.address.house;
alert(details.type);

大家好,我有一个关于对象的迫切问题。我必须说,当我在看这方面的教程时,大多数都不清楚,因为我喜欢理解概念而不仅仅是最终目标,但我似乎无法找到关于这些概念的太多材料,所以在玩了几个小时的控制台之后。我想出了这个。我可能完全错了,但需要问我的理智。上面的代码我将 var person 想象为全局窗口对象。作为文档的地址(窗口对象的属性)。房子作为getElementById(我知道这是一个与属性相比的方法,但我只关注访问对象中的属性和方法的途径。然后我假设我将所有分配给一个变量然后.type就像.innerHTML。 所以虽然显然功能上不一样。我是否正确地说包括窗口全局对象的路径例如

var box = window.document.getElementById('box');
box.innerHTML = 

是一样的

var box = person.address.house;
box.type =

Obvs 忽略了功能但创建我自己的对象的途径,我说的是类似的设置是否正确?

谢谢大家

【问题讨论】:

  • 是的,您认为两者在外观/设置方面存在相似之处是正确的。

标签: javascript methods properties javascript-objects global


【解决方案1】:

我想我明白你在问什么。 window.document.getElementById('box').innerHTML 类似于调用 person.address.house.type。但是,我必须指出 window 对象是一个内置的 javascript 对象,而您的 person 对象是您创建的。 window对象是由一堆属性和方法组成的,里面又包含了嵌套的属性和方法,和你的person对象类似!

如果您想查看对象包含哪些属性和方法,可以使用 console.dir():

console.dir(window);

let person = {

name:"kevin",
eyeColor:"blue",
age: 34,
address: {

street: "12 havering road",
town: "romford", 

house: {
type: "terraced",
bedrooms: 3,

}
},
updateAge: function () { 

let age = ++person.age;
return age;

}
};
console.dir(person);

【讨论】:

  • 太棒了,感谢您的回复。我松了一口气,我没走多远,一整天都在死胡同,你同意没有太多材料描述这个概念,但主要关注创建对象的最终目标和最终目标吗?
  • @KevinGreetham 我同意如果你自己学习这个概念,没有太多解释。但请记住,JavaScript 的一个好的经验法则是一切都是对象。如果我们在 var x = []; 这样的代码中创建一个数组突然间,我们可以访问一堆我们没有编写的方法和属性。比如像x.length这样的数组长度。这是因为在创建数组时,我们会创建数组对象的新实例,这就像 JS 包含的蓝图,说明每个数组都获取这些方法和属性。这么长的答案,JS中的一切都是一个对象。
  • 非常感谢,如果您能这么好心,再问一个问题。我正在自己学习这个,我在学习 HTML 和 CSS 浮动和 flexbox 布局后于 2 个月前开始学习。我的问题是,当你说一切都是对象时,你能给我举几个例子吗?例如对象内部的属性会变成对象本身吗?谢谢
  • @KevinGreetham 想参加缩放电话,我可以告诉你吗?不知道能不能全部输入
  • 天哪,太棒了,我太感激了,我应该设置一个还是你?
猜你喜欢
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
相关资源
最近更新 更多