我试图理解Javascript中的包装类。
根据我的理解,我认为包装元素是这样的(这里是div包装吗?)
<div>
<!--- content and tags here --->
</div>
但是Wrapper类似乎是新的,它会是这样的吗?
考虑一下
class myClass {
//Some content
}
export default myClass
如果我在导出语句中用高阶组件包装一些东西(HOC与反应有关但你可能会忽略)
export default something (myClass)
这会被视为包装类吗?或包装类是别的什么?
答案 0 :(得分:2)
在vanilla javascript中没有这样的'包装'类。只有类本身就是一些功能的包装器。例如,如果我们正在编写一个棋盘,我们可能会有一个Pawn
类来“包裹”所有棋子的功能:
class Pawn {
constructor(position) {
this.position = position;
}
move() {
// some code
}
}
let pawn = new Pawn('A1');
在上面的示例中,Pawn
类'包装'pawn对象的所有功能。这很有用,因为现在我们可以使用这些对象而无需查看其实现细节,我们只需要知道该对象的行为方式。课程的主要内容是:
答案 1 :(得分:0)
通常在面向对象编程中,类的行为可以通过继承传递给不太通用的类。在ES6术语中,我们很可能在类定义中使用extends
关键字。
Take this example of extends
from MDN:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + ' makes a noise.');
}
}
class Dog extends Animal {
speak() {
console.log(this.name + ' barks.');
}
}
var d = new Dog('Mitzie');
d.speak(); // Mitzie barks.
MDN关于此的另一个重要说明:
ECMAScript 2015中引入的JavaScript类主要是基于JavaScript现有的基于原型的继承的语法糖。类语法没有向JavaScript引入新的面向对象的继承模型。