javascript - 对象方法无法访问 ES6 JavaScript 对象的计算属性

标签 javascript json oop ecmascript-6 locale

问题

这可能很简单,我不太确定这(只是因为它处理对象)是否是一个“面向对象”的问题。我构建了一个 JavaScript 对象作为学习练习。我可以访问各种方法和属性,但是,依赖计算属性的 *** 方法返回未定义并给出错误。我不是 JavaScript 专家,大约 6 年前我开始学习 jQuery。现在,我正在尝试自学 vanilla JavaScript 基础知识。由于 ES6/2015 似乎是我正在尝试学习的最新方法。

我在 PHP 方面确实有一些 OOP 经验,所以我认识一些 OOP 概念,但只能说我有点生疏。

当我尝试查看 objActorInfo.birth.birthdateusa 的内容时出现问题:

Uncaught ReferenceError: birthdatenumsusa is not defined at Object.get birthdateusa [as birthdateusa] (:23:27) at :1:20

当我 console.log 整个 objActorInfo 对象并检查 birthdateusa 属性时,我得到以下附加信息:

[Exception: ReferenceError: birthdatenumsusa is not defined at Object.get birthdateusa [as birthdateusa] (:23:27) at Object.remoteFunction (:2:14)]

我不确定我做错了什么。

我的代码

console.clear();

var objActorInfo = {};

// function birthStrings(date) {

objActorInfo.birth = {

	/* DATES */
	birthYear4: 1960,
	birthMonthNum: 10,
	birthDayOfMO: 18,
	
	get birthDateUSA() {
		/* This method sets the values of multiple properties
			and therefore, according to my understanding, doesn't need
			to return anything.
		*/
		var birthdate4USA = [this.birthMonthNum,this.birthDayOfMO,this.birthYear4].join('/');

		this.birthMonthStr = birthdate4USA.toLocaleString("en", { month: "long"  });
	},

  };

console.log(objActorInfo);
console.log("objActorInfo.birth.birthdateusa: " + objActorInfo.birth.birthdateusa);

我试过但没有用的东西

我在网上查看了很多链接,但其中大部分指向有关 JavaScript 库的错误报告,而不是 vanilla JS。我对原型(prototype)制作知之甚少,到目前为止,还不需要。但是,我注意到术语 prototype 在我搜索的许多资源中不断出现。如果可以避免的话,我只是不想走错路。

这两个是我发现最有希望的帖子:

我的问题

  1. 我如何计算出生日期(采用美国日期格式,不使用任何外部依赖项或库),将该值存储为属性,然后反复使用该属性计算同一对象的其他属性。注意:我不是在尝试构造函数和实例等。这只是一个基本的 JavaScript 对象。

  2. 如何使用即时计算的属性或方法作为存储值来计算同一对象的其他属性值?

  3. 如何使用现代 ES6 JavaScript 技术(包括 toLocaleString() 函数)从日期对象中获取月份名称字符串。

最佳答案

你拼错了 birthdatenumsusa

    var birthdatenumsusa = [this.birthmonthnum,this.birthdayofmo,this.birthyear].join('/');
    this.birthdatenumsusa = birthdatenumsusa;

在编写 JavaScript 时,camelCase 是约定俗成的做法,这样的小错误会更加明显。

关于javascript - 对象方法无法访问 ES6 JavaScript 对象的计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47982826/

相关文章:

java - 无法使用 jackson API 将 json 字符串映射到 java 对象

Mysql - 如何比较两个 Json 对象?

c++ - 将功能实现为仿函数的优点和缺点

java - 为什么 shortValue() 方法是具体的,而 intValue() 是抽象到 java.lang.Number 中的?

javascript - .po 文件和 gettext VS JSON 和自定义 i18n 库?

javascript - JSF 命令按钮启用/禁用基于使用 javascript 的 JSF 复选框

java - 在 REST/Java 中,如果我的对象为 null,我应该返回什么?

javascript - 在转到下一个对象后让 angular.forEach 等待 promise

javascript - 如何在React中将选定的数据从子状态获取到父状态

java - 在Python中使用类对象作为其他类函数的参数