这肯定是微不足道的问题,但我对JavaScript很困惑。我想在另一个函数中调用方法。我花了一些时间来处理这个问题,到目前为止我所做的只是第二段代码。我想知道,如果评论中有任何类似的解决方案。
function Student() {
this.greeting = function() {
alert('Hi! I\'m student.');
};
};
function Teacher() {
Student.call(this)
this.greeting = function() {
Student.??? // here I want something like "inherited", or call Student.greeting()
alert('and I like apples');
};
};
我想确定,没有像原型制作那样的选择:
function Student() {
};
Student.prototype.greeting = function() {
alert('Hi! I\'m student.');
};
function Teacher() {
Student.call(this);
this.greeting = function() {
Student.prototype.greeting();
alert('and I like apples');
};
};
感谢名单
答案 0 :(得分:-1)
学生是一个函数,在你的情况下它也是一个构造函数。 致电"学生"你需要保存通过构造函数学生
调用返回的对象function Teacher() {
var stdnt = new Student()
this.greeting = function() {
stdnt.greeting()
alert('and I like apples');
};
};
另外,在你的代码中,Student.call(this)相当于函数调用Student() - 没有创建新对象
UPD2。这个来自内部函数的stdnt调用称为" closure"