【发布时间】:2018-03-17 23:35:42
【问题描述】:
您好,这是我正在处理的一项挑战。有什么方法可以在不使用关键字 this 的情况下将引入方法添加到 personStore 对象。非常感谢任何见解。
使用 Object.create
挑战 1/3
在
personStore对象中,创建一个属性 greet,其中的值是一个记录“hello”的函数。挑战 2/3
创建一个函数
personFromPersonStore,将姓名和年龄作为输入。 > 调用时,该函数将使用personStore对象上的 Object.create 方法创建人员对象。挑战 3/3
在不编辑您已经编写的代码的情况下,将
introduce方法添加到记录“嗨,我的名字是 [name]”的personStore对象。侧面好奇
顺便说一句,我很好奇是否有办法将引入方法添加到位于 personFromPersonStore 函数内部的 person 对象中。
我的解决方案:
var personStore = {
// add code here
greet: function (){
console.log('Hello');
}
};
function personFromPersonStore(name, age) {
var person = Object.create(personStore);
person.name = name;
person.age = age;
person.greet = personStore.greet;
return person;
};
personStore.introduce = function () {
console.log('Hi, my name is ' + this.name)
}
//Challenge 3 Tester
sandra.introduce(); // -> Logs 'Hi, my name is Sandra
【问题讨论】:
标签: javascript function object constructor