谁能非常简单地向我解释一下 JavaScript 中任务列表上下文中的原型继承是什么?极度迷茫的JS新同学
Could anyone explain to me very simply what prototypal inheritance is in the context of a task list in JavaScript? Extremely confused new JS student
这是我不明白的地方,阅读它让我头疼。我需要一个非常简单的版本才能理解它:
创建原型继承:之前,您已经为具有许多属性(任务名称、描述等)的任务创建了通用自定义对象。现在,您将通过创建顶级任务对象和基于类别的不同类型的任务来展示您对原型继承的了解。例如,您可能有一个 Grocery 任务类别,它与 Education 任务类别具有不同的属性。但是,这两种类型的任务都需要从父任务对象继承一些通用属性和方法。
我也不太明白如何将任务存储为对象,或者为什么需要在任务列表的上下文中执行此操作,以及如何执行此操作。我认为这将是原型继承之前的第一步?感谢任何有时间解释的人。
我的 JavaScript 高级 class 目前未及格,因此非常感谢任何提示!
$(document).ready(function () {
var task = {
name: "",
description: "",
status: "",
eta: "",
priority: "",
owner: "",
initiate() {
console.log("Starting Task");
this.status = "IN PROGRESS";
console.log(this);
},
complete() {
console.log("Ending Task");
this.status = "COMPLETED";
console.log(this);
}
};
var education = {
grade: "",
studentName: "",
subjects: [],
__proto__: task
};
var grocery = {
items: [],
budget: "",
spend: "",
__proto__: task
};
education.grade = "10th";
education.studentName = "Diana";
education.subjects = ["Science", "History"];
education.name = "Complete Assignments";
education.description = "Useful for better grades";
education.initiate();
education.complete();
});
以上代码的控制台是:
> "Starting Task"
> [object Object]
> "Ending Task"
> [object Object]
如您所见,教育和杂货是新对象,它们现在正在扩展原始“任务”对象。现在这两个新对象基本继承了“任务”的所有属性和功能。
代码笔:https://codepen.io/pranaynailwal/pen/GRrKqQV?editors=1111
这是我不明白的地方,阅读它让我头疼。我需要一个非常简单的版本才能理解它:
创建原型继承:之前,您已经为具有许多属性(任务名称、描述等)的任务创建了通用自定义对象。现在,您将通过创建顶级任务对象和基于类别的不同类型的任务来展示您对原型继承的了解。例如,您可能有一个 Grocery 任务类别,它与 Education 任务类别具有不同的属性。但是,这两种类型的任务都需要从父任务对象继承一些通用属性和方法。
我也不太明白如何将任务存储为对象,或者为什么需要在任务列表的上下文中执行此操作,以及如何执行此操作。我认为这将是原型继承之前的第一步?感谢任何有时间解释的人。
我的 JavaScript 高级 class 目前未及格,因此非常感谢任何提示!
$(document).ready(function () {
var task = {
name: "",
description: "",
status: "",
eta: "",
priority: "",
owner: "",
initiate() {
console.log("Starting Task");
this.status = "IN PROGRESS";
console.log(this);
},
complete() {
console.log("Ending Task");
this.status = "COMPLETED";
console.log(this);
}
};
var education = {
grade: "",
studentName: "",
subjects: [],
__proto__: task
};
var grocery = {
items: [],
budget: "",
spend: "",
__proto__: task
};
education.grade = "10th";
education.studentName = "Diana";
education.subjects = ["Science", "History"];
education.name = "Complete Assignments";
education.description = "Useful for better grades";
education.initiate();
education.complete();
});
以上代码的控制台是:
> "Starting Task"
> [object Object]
> "Ending Task"
> [object Object]
如您所见,教育和杂货是新对象,它们现在正在扩展原始“任务”对象。现在这两个新对象基本继承了“任务”的所有属性和功能。
代码笔:https://codepen.io/pranaynailwal/pen/GRrKqQV?editors=1111