使用原型模式

时间:2018-11-07 15:03:07

标签: javascript

我具有此功能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();

2 个答案:

答案 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