2017-10-06 82 views
0

过去几个小时一直在使用JavaScript挑战,并且使用new关键字卡住了这个挑战。我尽我所能地完成了第1部分和第3部分,但第2部分非常困惑。任何帮助都将不胜感激。需要帮助在2个参数中添加一个构造函数

挑战1/3

创建使用此 关键字保存单个属性到其范围称为迎接函数PersonConstructor。迎接 应该是一个记录字符串'hello'的函数。

挑战2/3

创建一个功能personFromConstructor是需要输入一个名称和 的时代。当被调用时,函数将使用 新关键字而不是Object.create方法创建人物对象。

挑战3/3

没有编辑你已经写的代码,添加一个介绍的方法来 的PersonConstructor功能登录“你好,我的名字是[名]”。


*** CHALLENGE 1 of 3 ***/ 

function PersonConstructor() { 
    // add code here 
    this.greet = function() { 
    console.log('hello'); 
    } 

} 


// /********* Uncomment this line to test your work! *********/ 
var simon = new PersonConstructor; 
// simon.greet(); // -> Logs 'hello' 



/*** CHALLENGE 2 of 3 ***/ 

// add code here 
function personFromConstructor(name, age) {  


} 

var mike = personFromConstructor('Mike', 30); 


// /********* Uncomment these lines to test your work! *********/ 
//console.log(mike.name); // -> Logs 'Mike' 
// console.log(mike.age); //-> Logs 30 
// mike.greet(); //-> Logs 'hello' 



/*** CHALLENGE 3 of 3 ***/ 
// add code here 
PersonConstructor.prototype.introduce = function(){ 
    console.log('Hi, my name is ' + name) 
} 


console.log(mike.introduce()); // -> Logs 'Hi, my name is Mike' 
+0

哦,这实际上是一个不同的任务...重新打开。 – Cerbrus

回答

0

这可能给你一些想法:

function personFromConstructor(name, age) {  
    var person = new PersonConstructor(); 
    person.name = name; 
    person.age = age; 
    return person; 
} 

它创造了新的人员对象和分配nameage属性吧。最后它返回创建人。

+0

啊辉煌,出于某种原因我使用this.name = name;而不是宣称人被称为这个关键字。欢呼,thx的帮助! –

相关问题