使用原型模式时,将参数传递给对象



我有这个函数Person,还有一个定义姓名、年龄和工作的对象。但我想知道是否有可能使属性名称、年龄和工作不是静态值。我可以通过新的Person((以某种方式传递值吗?

我试过了,但不能让它真正发挥作用,但也许这是不可能的?

function Person() { }
Person.prototype = {
name: 'Tony Stark',
age: 48,
job: 'Iron Man',
sayName: function() {
console.log(this.name);
}
}
var person1 = new Person();
person1.sayName();

如果您想放置默认值,您应该使用与undefined的显式比较。

类似这样的东西:

function Person(name, age, job) {
if(name|| name=== 0)this.name= name;
if(age|| age=== 0)this.age= age;
if(job|| job=== 0)this.job= job;
}
Person.prototype.name= 'Tony Stark';
Person.prototype.age= 48;
Person.prototype.job= 'Iron Man';
var person = new Person();
console.log(person);

简单来说,

function Person(name,age){
this.name=name;this.age=age;
}
var p = new Person("s",34);
console.log(p.name) // prints "s" on console
console.log(p.age) // prints 34 on console

最新更新