我正在尝试围绕原型继承工作,但我无法弄清楚为什么我的代码会失败。我正在努力从对象原型继承该对象的对象上调用该函数。我的代码在下面...
const OBJ_PROTO = {
myFunction(param = 'a') {
if (['a', 'b'].includes(param)) {
this.someVar = param;
};
return this.someVar;
}
}
const obj = ({
someVar = 'a'
} = {}) => Object.assign(Object.create(OBJ_PROTO), { someVar })
export default obj;
然后在测试中,我正在做...
import obj from './someFile'
test('testing my function', () => {
const myObj = obj();
expect(myObj.myFunction()).toBe('a')
});
该测试似乎失败,并且错误提示myFunction不是函数。正确运行Object.getPrototypeOf(myObj)会列出使我相信我在某个地方犯了一个愚蠢错误的函数。我为此而高兴地被烤。我知道用Jest测试像这样的简单代码是非常过分的,但这只是我想熟悉的另一件事。任何帮助是极大的赞赏!如果需要更多信息,请询问!
const OBJ_PROTO = {
myFunction(param = 'a') {
if (['a', 'b'].includes(param)) {
this.someVar = param;
};
return this.someVar;
}
}
const obj = ({
someVar = 'a'
} = {}) => Object.assign(Object.create(OBJ_PROTO), { someVar })
const myObj = obj();
console.log(myObj.myFunction())