js创建对象问题 求助大神

  1. 图片说明 为什么运行结果都是undefiend

直接用var people = createPeople("X",123,"X");
people.sayHello();

@yenange 我都不好意思回答

 function createPeople(name) {
    this.name = name; //这里的this指的是createPeople new出来的对象,也就是你下面var p1 = new createPeople("One");的p1,
    //这个name值是付给了p1,而你调用的sayHello方法中的this.name并没有值,
}

people.sayHello = function() {
    console.info("My name is"+this.name); //这里的this指的是people对象,它没有name属性
}

你可以这样将值传给people对象

 function createPeople(name,age) {
    var people = new Object();
    people.name = name;
    people.age = age;
    people.sayHello= function() {
        console.info("my name is "+this.name+", age is "+this.age);
    }
    return people;
}

var p1 = new createPeople("One",19);
p1.sayHello();