以 OOP 方式,我定义一个 Person“类”,如下所示:
var Person = {
name: '',
age: 32,
gender: 'male',
interests: ['music', 'skiing'],
bio: function() {
alert(this.name[0] + ' ' + this.name[1] + ' is ' + this.age + ' years old. He likes ' + this.interests[0] + ' and ' + this.interests[1] + '.');
},
greeting: function() {
alert('Hi! I\'m ' + this.name + '.');
}
};
现在,我正在实例化上面的类。
var person1= Object.create(Person);
person1.name = 'personname';
person1.greeting();
如何模仿构造函数,以便当 Object.create(Person) 创建新对象时,自动计算构造函数代码?
最佳答案
您可以将代码包装在一个函数中,并在那里调用它。 Object.create
将与原型(prototype)
建立关系,但不会自动调用任何其他代码。
function person(name) {
var person1 = Object.create(Person);
person1.name = name;
return person1;
}
person('personname').greeting();
您还应该避免将变量的首字母大写,除非它们是应该使用 new
调用的函数。这是仅用于构造函数的命名约定。
关于javascript - 如何以 OOP 风格模仿 JavaScript 中的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41996432/