@vaporeon_ I love JavaScript, so delete this please
@vaporeon_ depends! https://corru.observer/ was written entirely in JavaScript and it is cool as shit
@vaporeon_ I love JavaScript, so delete this
please
@wallhackio How do I deallocate memory / destroy an object in JavaScript? So that I can delete this
?
@vaporeon_ npm install memory-management
@wallhackio Nooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
And in standard JavaScript? No NPM?
@vaporeon_ it was a joke lmao
@wallhackio But can you do any memory management in JavaScript?
const deleteThis = () => {
const temp = { _this: this };
delete temp._this;
};
@aescling @vaporeon_ this will NOT do what it's being promised to do, this is a joke
@aescling @vaporeon_ this
is a joke
@wallhackio @aescling What will it do?
@vaporeon_ @aescling it will create an object with a single property named _this
that has the value of whatever this
was where the arrow function was declared
and then it will delete that property from the object
@wallhackio @aescling So creating the object initializes _this
with a copy of the value of this
, and only that copy gets deleted?
@vaporeon_ @aescling yessir
@wallhackio @vaporeon_ not a copy but a refurence
@wallhackio @vaporeon_ what gets deleted is the refurence
@aescling @wallhackio Is a reference the JavaScript version of a pointer?
@vaporeon_ @wallhackio yeah basically
@aescling @vaporeon_ did you know C++ has both pointers and references :D
@wallhackio @aescling I did! I have a lot of trouble with the concept of references that are not pointers, but as far as I understood, it's just telling the compiler a different name for the same variable? Sort of like EQUIVALENCE
in FORTRAN?
const o = { k: 1 };
function changeObj(o) {
o.k = 2
};
changeObj(o);
console.log(o); // { k: 2 }
@aescling @wallhackio LOL, is that because the pointer is a constant, but the contents of the object are not? In C terms, what happens here is this, right?
changeObj(struct object *o) {
o->k = 2;
}
main() {
const struct object *o = new_object(1);
changeObj(o);
printf("k: %d\n", o->k);
}
javascript wonkery
@wallhackio @vaporeon_ fur the record, the following alternative implementation is subtly but meaningfully diffurent:
const deleteThis = function() {
const temp = { _this: this };
delete temp._this;
};
arrow functions and functions defined with the function
keyword have intentionally diffurent rules about resolving this
@aescling @wallhackio @monorail Ms. Glaceon, please, we need that emoji
Maybe call it blobcat_eyeroll
, for consistency
@vaporeon_ @wallhackio @monorail “Ms. Glaceon”
@vaporeon_ @wallhackio @monorail makes her sound like a very tall elementary school teacher
@aescling @wallhackio @monorail Elementary school with a Python code-golfing class
@monorail @vaporeon_ @aescling hi ms. glaceon you are so cool
@monorail @vaporeon_ @aescling how is that confusing, it is simply an objective fact
@wallhackio @vaporeon_ @aescling i just don't understand the relevance to anything
@monorail @vaporeon_ @aescling it wasn't a reference to anything, you were just there and I felt like saying something nice
@wallhackio But you don't love writing a computer game in JavaScript! (Or at least, I hope you don't love that...)