Javascript 我可以在js中通过父对象创建对象吗
我是OOJS新手,在试图理解继承时有点困惑,我创建了两个简单的类,person和student,它们继承自person,是否有一个通过在父构造函数中传递数据来创建student的选项?如果可能的话,怎么做?子级可以从父级获取所有属性和方法,还是仅从方法获取 **警报中的fname和lName未定义Javascript 我可以在js中通过父对象创建对象吗,javascript,oop,inheritance,javascript-objects,Javascript,Oop,Inheritance,Javascript Objects,我是OOJS新手,在试图理解继承时有点困惑,我创建了两个简单的类,person和student,它们继承自person,是否有一个通过在父构造函数中传递数据来创建student的选项?如果可能的话,怎么做?子级可以从父级获取所有属性和方法,还是仅从方法获取 **警报中的fname和lName未定义 function Person(fNme, lName) { this.fname = fNme; this.lName = lName;
function Person(fNme, lName) {
this.fname = fNme;
this.lName = lName;
}
Object.prototype.go = function() {
alert("I am going now last time you see "+ this.lName);
}
function Student() {
this.study = function () {
alert("I am studing !");
}
}
Student.prototype = new Person();
var s1 = new Student("sam", "bubu");
alert(s1.fname +"+"+ s1.lName)
你可以使用构造函数
function Student(fName,lName) {
Person.call(this,fName,lName);
this.study = function () {
alert("I am studing !");
}
}
调用
Student
构造函数时,可以通过call()
将参数传递给Person()
,以初始化Person中的变量,这只需调用父构造函数即可
function Student(fName, lName, whateverelse) {
Person.call( this, fName, lName ); // call base class constructor function
this.study = function () {
alert("I am studing !");
}
}
因此,您想在Student()
中调用Person()
,并将其传递给正确的参数是的,就像在c#中一样,调用父级使用其构造函数,如果可能的话……好的,如果我想向Student添加另一个属性:将从Person中获取名称,并将平均值添加到Student构造函数中是否可能?。。。顺便问一下,为什么在声明继承之后,这是未定义的?Student.prototype=新人();var s1=新生(“sam”、“bubu”);要在Person()
中使用的任何参数,只需在Person.call()
中传递即可。以下是您的示例: