, если ваш объект написан как функция, возвращающая объект, и вы используете методы атрибута объекта-объекта ES6, тогда это возможно:
const module = (state) => ({
a: 1,
oneThing() {
state.b = state.b + this.a
},
anotherThing() {
this.oneThing();
state.c = state.b + this.a
},
});
const store = {b: 10};
const root = module(store);
root.oneThing();
console.log(store);
root.anotherThing();
console.log(store);
console.log(root, Object.keys(root), root.prototype);
Я предполагаю, что cs50.h
содержит некоторые определения, такие как псевдоним типа от char *
до string
, которые профессор дает вам для простоты.
Если это правда, то buildLetterDictionary()
не может работать, потому что вы делаете:
char letters[27];
...
char * letter = letters;
return letter;
Это означает, что вы возвращаете адрес локальной переменной, которая будет уничтожена, как только вы выйдете функция.