我具有此功能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();
答案 0 :(得分:0)
如果要使用默认值,则应使用未定义的显式比较。
类似这样的东西:
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);
答案 1 :(得分:0)
以一种简单的方式,
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