Test your skills: Object-oriented JavaScript - Learn web development 编辑
The aim of this skill test is to assess whether you've understood our Object-oriented JavaScript for beginners, Object prototypes, and Inheritance in JavaScript articles.
Note: You can try out solutions in the interactive editors below, however it may be helpful to download the code and use an online tool such as CodePen, jsFiddle, or Glitch to work on the tasks.
If you get stuck, then ask us for help — see the Assessment or further help section at the bottom of this page.
Note: In the examples below, if there is an error in your code it will be outputted into the results panel on the page, to help you try to figure out the answer (or into the browser's JavaScript console, in the case of the downloadable version).
OOJS 1
In this task we provide you with a constructor. We want you to:
- Add a new method to the
Shape
class's prototype,calcPerimeter()
, which calculates its perimeter (the length of the shape's outer edge) and logs the result to the console. - Create a new instance of the
Shape
class calledsquare
. Give it aname
ofsquare
and asideLength
of5
. - Call your
calcPerimeter()
method on the instance, to see whether it logs the calculation result to the browser DevTools' console as expected. - Create a new instance of
Shape
calledtriangle
, with aname
oftriangle
and asideLength
of3
. - Call
triangle.calcPerimeter()
to check that it works OK.
Try updating the live code below to recreate the finished example:
Download the starting point for this task to work in your own editor or in an online editor.
OOJS 2
Next up we want you to take the Shape
class you saw in Task #1 (including the calcPerimeter()
method) and recreate it using ES class syntax instead.
Test that it works by creating the square
and triangle
object instances as before (using new Shape()
for both), and then calling their calcPerimeter()
methods.
Try updating the live code below to recreate the finished example:
Download the starting point for this task to work in your own editor or in an online editor.
OOJS 3
Finally, we'd like you to start with the ES Shape
class you created in the last task.
We'd like you to create a Square
class that inherits from Shape
, and adds a calcArea()
method that calculates the square's area. Also set up the constructor so that the name
property of Square
object instances is automatically set to square
, and the sides
property is automatically set to 4
. When invoking the constructor, you should therefore just need to provide the sideLength
property.
Create an instance of the Square
class called square
with appropriate property values, and call its calcPerimeter()
and calcArea()
methods to show that it works ok.
Try updating the live code below to recreate the finished example:
Download the starting point for this task to work in your own editor or in an online editor.
Assessment or further help
You can practice these examples in the Interactive Editors above.
If you would like your work assessed, or are stuck and want to ask for help:
- Put your work into an online shareable editor such as CodePen, jsFiddle, or Glitch. You can write the code yourself, or use the starting point files linked to in the above sections.
- Write a post asking for assessment and/or help at the MDN Discourse forum Learning category. Your post should include:
- A descriptive title such as "Assessment wanted for OOJS 1 skill test".
- Details of what you have already tried, and what you would like us to do, e.g. if you are stuck and need help, or want an assessment.
- A link to the example you want assessed or need help with, in an online shareable editor (as mentioned in step 1 above). This is a good practice to get into — it's very hard to help someone with a coding problem if you can't see their code.
- A link to the actual task or assessment page, so we can find the question you want help with.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论