Rag*_*waj 6 javascript oop ecmascript-6
我正在尝试学习JavaScript ES6,这是一种非常酷的语言,我认为我应该练习一下,但我无法进行练习.那么我如何使用object literal复制一个类.
例如,该类是:
class Point {
constructor(x, y) {
this.x = x, this.y = y
}
add(other) {
return new Point(this.x + other.x, this.y + other.y)
}
}
Run Code Online (Sandbox Code Playgroud)
我想在这里使用object literal做一些事情来使输出成为真.
var fakePoint = YOUR_CODE_HERE
console.log(fakePoint instanceof Point)
Run Code Online (Sandbox Code Playgroud)
我猜这个练习正在寻找一个__proto__用作对象文字键的解决方案- 如幻灯片中所述:
var fakePoint = {
__proto__: Point.prototype,
x: Math.random(),
y: Math.random()
};
console.log(fakePoint instanceof Point)
Run Code Online (Sandbox Code Playgroud)
但是,__proto__不推荐使用(在对象文字和Object.prototypegetter/setter中),并且仅在Web浏览器中作为ES6标准化的遗留功能提供,因此我建议避免使用此类代码.适当的解决方案是使用Object.create:
var fakePoint = Object.assign(Object.create(Point.prototype), {
x: Math.random(),
y: Math.random()
});
console.log(fakePoint instanceof Point)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |