构造函数以及调用如何在Javascript中工作

时间:2016-11-12 15:28:18

标签: javascript object call

我对代码有几个问题。

1)在学生构造函数中, Person.call(this,firstName)是否允许学生访问人的方法?或者它是否会改变这个的背景?

2)我假设Student.prototype = Object.create(Person.prototype)让我们接触到人的方法和属性?

我很难理解通话方法。

var Person = function(firstName) {
  this.firstName = firstName;
};

Person.prototype.walk = function(){
  console.log("I am walking!");
};


function Student(firstName, subject) {
  Person.call(this, firstName);
  this.subject = subject;
};

Student.prototype = Object.create(Person.prototype); // See note belo
Student.prototype.constructor = Student;

Student.prototype.sayHello = function(){
  console.log("Hello, I'm " + this.firstName + ". I'm studying "
              + this.subject + ".");
};

1 个答案:

答案 0 :(得分:0)

1)不,它设置 <div class="ui top attached demo inverted menu"> <div class="pusher"> <div class="ui main text container"> <h3>Page Two</h3> <h3>Page Two</h3> <h3>....</h3> </div> </div> </div> 值并传递参数,但是因为它将this的{​​{1}}值设置为this内的Person this }},它也可以Student Person访问Student,但不是相反。

所有call(this-value, [arg1,arg2])apply(this-value, [[arg1,arg2]])都会使用给定的this-value和参数调用函数。

2)是的,Student.prototype = Object.create(Person.prototype)复制Person的原型,并将其设置为Student的原型,为Student提供与Person相同的原型方法,但副本,不一样的参考。