【发布时间】:2015-09-04 00:17:50
【问题描述】:
我有一些 Java 背景,但现在我正在尝试用 JavaScript 和 HTML 编写一些简单的游戏。我很难理解 OOP 是如何工作的,因为似乎有不同的创建对象的方式?我写了这个 sn-p 引用朋友的代码,但控制台给了我“未捕获的 TypeError:无法设置未定义的属性 'roar'”。为什么代码对他有用,但对我不起作用?他在运行某种服务器端库吗?
test.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>
【问题讨论】:
-
首先,Bear的
this和Animal的this是两个不同的对象
标签: javascript oop inheritance