为什么这个继承的例子不能在我的计算机上工作?
Why does this example of inheritance not work on my computer?
我有一些Java背景,但现在我正试图用JavaScript和HTML编写一些简单的游戏。我正在努力理解OOP是如何工作的,因为它似乎有不同的方式来创建对象?我写的这段代码引用了一个朋友的代码,但是控制台给了我"未捕获的TypeError: Cannot set property 'roar' of undefined"。为什么代码对他有用,对我没用?他在运行什么服务器端库吗?
. js:
function Animal() {
this.needsAir = true;
this.roar = function() {
console.log("roar");
}
}
function Bear() {
Animal.call();
}
var init = function() {
var bear = new Bear();
bear.roar();
console.log(bear.needsAir)
}
index . html:
<html>
<head>
<script type="text/javascript" src="./test.js"></script>
</head>
<body>
<script type="text/javascript">
window.onload = function() {
init();
}
</script>
</body>
</html>
您需要将this
传递给.call
function Bear() {
Animal.call(this);
}
同样,你的原型继承也不完整。
您的函数具有不同的this
—尝试使用apply
方法,这将使您更进一步,如;
function Bear() {
Animal.apply(this);
}
javascript中还有很多需要的东西,比如原型定义
Bear函数需要将this
传递给Animal call。
为了更好地理解javascript继承,你可以查看这个博客
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 我的单元测试选项是什么
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 我的职位回报太快了,如何做出承诺
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何识别我的网站中的慢速设备
- 如何将JSON数据导入我的ejs模板
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 知道为什么我的旋转木马不会自动更改图片吗
- 我的模板未被解析
- 无法将数据从firebase获取到我的html页面
- 角度图表;t显示在我的页面中
- 我的AngularJS表达式没有'不起作用
- 将电视直播频道从网站嵌入我的网站
- Jquery幻灯片效果仅适用于我的计算机
- 使我的简介页面仅按用户或计算机显示一次
- 我如何知道用户是使用javascript或php登录同一台计算机还是不同的计算机
- 可汗学院的计算机程序如何离线运行或在我自己的网站上运行
- 我告诉我的计算机允许对localhost进行地理定位,但我仍然得到两个坐标的空值.我该如何解决这个问题呢?