假设我有一个Person
对象我想继承并创建另一个子类,如下所示:
var Person={
type:"human",
greet: function(){
console.log("hi im a human");
},
}
Person.prototype.sayName = function(){
return this.name;
}
继承如下:
var john = Object.create(Person);
john.walk = function(){
console.log("john is walking");
}
为什么 cant 我将walk
方法添加到john
s prototype
,如下所示:
john.prototype.walk = function(){
console.log("john is walking");
}
答案 0 :(得分:1)
尝试加载包含JavaScript的HTML页面,其中包含前2个(隐式"正确""打算")段落Google Chrome浏览器("版本55.0.2883.87(64-) bit)"在Kubuntu上16)已经显示错误(尝试F-12键并点击控制台查看)。
由于您没有明确描述如何使用JS代码,这至少是一个没有触发错误消息的版本,希望它符合您的要求(如果没有,请详细说明):< / p>
如果您创建的文件test1.js包含:
class Person {
constructor(name) {
this.name = name;
}
}
Person.prototype.name ="no name";
Person.prototype.type ="human";
Person.prototype.greet = function() {
console.log("hi im a human");
};
Person.prototype.sayName = function(){
return this.name;
}
var john = new Person("john");
john.walk = function() {
console.log(this.name+" is walking");
}
然后加载包含
的HTML文件<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="test1.js"></script>
</head>
<body>
<script type="text/javascript">
john.greet();
console.log(john.sayName());
john.walk();
</script>
</body>
</html>
将在控制台上输出:
嗨,我是一个人
约翰
约翰正在走路