- Last 7 days
-
blog.glyph.im blog.glyph.im
-
There is a tremendous power in thinking about everything as a single kind of thing, because then you don’t have to juggle lots of different ideas about different kinds of things; you can just think about your problem.
In my experience this is also the main benefit of using node.js as your backend. Being able to write your front and backend code in the same language (javascript) removes a switching cost I didn't fully realize existed until I tried node the first time.
-
- Oct 2024
-
developer.mozilla.org developer.mozilla.org
-
can't be represented exactly by a float
This is saying why
(2.55).toFixed(1)
evaluates to 2.5, cuz, internally, 2.55 is actually, 2.5499999999..., which evals to 2.5 indeed.
-
- Sep 2024
-
en.wikipedia.org en.wikipedia.org
-
In comparison, Perl/Python/Javascript, which also have the latter property, have other false-like values (0 and empty string), which make || differ from a null-coalescing operator in many more cases (numbers and strings being two of the most frequently used data types). This is what led Perl/Python/Javascript to add a separate operator while Ruby hasn't.
-
- Aug 2024
-
www.itflashcards.com www.itflashcards.com
-
JavaScript Flashcards
App with javascript interview questions
Tags
Annotators
URL
-
- Jul 2024
-
-
Barcode Writer in Pure JavaScript
-
- Jun 2024
-
-
- openai use LiveKit to deliver realtime voice
- playground: https://cloud.livekit.io/projects/
-
- Apr 2024
-
developer.mozilla.org developer.mozilla.org
- Feb 2024
-
observablehq.com observablehq.com
-
https://web.archive.org/web/20240216060220/https://observablehq.com/blog/observable-2-0
Observable is a static site generator for data dashboards and analyses. It can handle markdown and is as such compatible with using Obsidian notes as source. See https://mastodon.social/@kepano/111937315007645449
This is comparable with [[EUNotes via Github Respec naar Geonovum]] where I generate a respec site from my notes through github. Except that Respec is text documentation, and Observable contains javascript to present data.
-
-
www.youtube.com www.youtube.com
-
3:00 "and its long..." -- yeah, i have a 3MB obfuscated webapp at boxy-svg.com/app<br /> 3:05 "what would you do?" -- semi-automatic dynamic analysis. rename symbols. eval function calls. interact with the webapp (hence "semi" automatic). trace data in the debugger.<br /> but im still looking for a tool to do that for me... : P<br /> most tools fail on large files, or ESM (import, export) ...<br /> my current favorite is https://github.com/j4k0xb/webcrack and https://github.com/pionxzh/wakaru -- at least it works with ESM
Tags
Annotators
URL
-
- Jan 2024
-
mongoosejs.com mongoosejs.com
-
Instance methods Instances of Models are documents. Documents have many of their own built-in instance methods. We may also define our own custom document instance methods. // define a schema const animalSchema = new Schema({ name: String, type: String }, { // Assign a function to the "methods" object of our animalSchema through schema options. // By following this approach, there is no need to create a separate TS type to define the type of the instance functions. methods: { findSimilarTypes(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); } } }); // Or, assign a function to the "methods" object of our animalSchema animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); }; Now all of our animal instances have a findSimilarTypes method available to them. const Animal = mongoose.model('Animal', animalSchema); const dog = new Animal({ type: 'dog' }); dog.findSimilarTypes((err, dogs) => { console.log(dogs); // woof }); Overwriting a default mongoose document method may lead to unpredictable results. See this for more details. The example above uses the Schema.methods object directly to save an instance method. You can also use the Schema.method() helper as described here. Do not declare methods using ES6 arrow functions (=>). Arrow functions explicitly prevent binding this, so your method will not have access to the document and the above examples will not work.
Certainly! Let's break down the provided code snippets:
1. What is it and why is it used?
In Mongoose, a schema is a blueprint for defining the structure of documents within a collection. When you define a schema, you can also attach methods to it. These methods become instance methods, meaning they are available on the individual documents (instances) created from that schema.
Instance methods are useful for encapsulating functionality related to a specific document or model instance. They allow you to define custom behavior that can be executed on a specific document. In the given example, the
findSimilarTypes
method is added to instances of theAnimal
model, making it easy to find other animals of the same type.2. Syntax:
Using
methods
object directly in the schema options:javascript const animalSchema = new Schema( { name: String, type: String }, { methods: { findSimilarTypes(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); } } } );
Using
methods
object directly in the schema:javascript animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); };
Using
Schema.method()
helper:javascript animalSchema.method('findSimilarTypes', function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); });
3. Explanation in Simple Words with Examples:
Why it's Used:
Imagine you have a collection of animals in your database, and you want to find other animals of the same type. Instead of writing the same logic repeatedly, you can define a method that can be called on each animal instance to find similar types. This helps in keeping your code DRY (Don't Repeat Yourself) and makes it easier to maintain.
Example:
```javascript const mongoose = require('mongoose'); const { Schema } = mongoose;
// Define a schema with a custom instance method const animalSchema = new Schema({ name: String, type: String });
// Add a custom instance method to find similar types animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); };
// Create the Animal model using the schema const Animal = mongoose.model('Animal', animalSchema);
// Create an instance of Animal const dog = new Animal({ type: 'dog', name: 'Buddy' });
// Use the custom method to find similar types dog.findSimilarTypes((err, similarAnimals) => { console.log(similarAnimals); }); ```
In this example,
findSimilarTypes
is a custom instance method added to theAnimal
schema. When you create an instance of theAnimal
model (e.g., a dog), you can then callfindSimilarTypes
on that instance to find other animals with the same type. The method uses thethis.type
property, which refers to the type of the current animal instance. This allows you to easily reuse the logic for finding similar types across different instances of theAnimal
model.
Tags
Annotators
URL
-
-
www.theodinproject.com www.theodinproject.com
-
With the introduction of ES6 Modules, the module pattern (IIFEs) is not needed anymore, though you might still encounter them in the wild.
-
-
developer.mozilla.org developer.mozilla.org
-
Any constructor that can be called with new and has the prototype property can be the candidate for the parent class.
Classes declared with
class
and functions withconstructor
and an assignedprototype
.
-
- Dec 2023
-
www.digitalocean.com www.digitalocean.com
-
We can use the call() method to copy over properties from one constructor into another constructor. Let’s create a Warrior and a Healer constructor.
-
It is important to note that .__proto__ is a legacy feature and should not be used in production code, and it is not present in every modern browser. However, we can use it throughout this article for demonstrative purposes.
-
-
developer.mozilla.org developer.mozilla.org
-
Remember, prefer Array methods that do not modify the original Array.
-
-
developer.mozilla.org developer.mozilla.org
-
javascript.info javascript.infoObjects1
Tags
Annotators
URL
-
-
javascriptissexy.com javascriptissexy.com
- Oct 2023
-
world.hey.com world.hey.com
-
developer.mozilla.org developer.mozilla.org
-
Por exemplo, ao usar métodos como Array.prototype.map()o que retorna o construtor padrão, você deseja que esses métodos retornem um Arrayobjeto pai, em vez do MyArrayobjeto. O Symbol.speciessímbolo permite
-
Você pode querer retornar Arrayobjetos em sua classe de array derivada MyArray. O padrão
-
Qualquer valor passado
-
O Object()construtor faz casos especiais do cenário de subclasse. Se for chamado implicitamente via super(), ele sempre
-
A única diferença de não escrever extendsnada é que o próprio construtor
No entanto
-
Subclasses abstratas ou mix-ins são modelos para classes. Uma classe só pode ter
Portanto
A funcionalidade
-
Uma função com uma superclasse como entrada e uma subclasse estendendo essa superclasse como saída pode
-
A herança é um relacionamento de acoplamento muito forte na programação orientada a objetos. Isso significa
-
Podemos contornar isso usando um sinalizador privado para indicar se a instância está sendo construída. No entanto, um problema mais significativo com esse projeto é que ele quebra
Que afirma
-
A herança muitas vezes leva ao problema do círculo-elipse , porque nenhum tipo
Em geral
-
Composição significa que uma classe
-
Nesse caso, a ReadOnlyMapclasse não é uma subclasse de Map, mas ainda implementa a maioria dos mesmos métodos. Isso significa mais duplicação de código, mas também significa que a ReadOnlyMapclasse não está fortemente acoplada à Mapclasse e não é facilmente interrompida
-
Por exemplo, se a Mapclasse adicionar um emplace()método que não chama set(), isso fará com que a ReadOnlyMapclasse não seja mais somente leitura, a menos
-
Todos os objetos JavaScript herdam
-
As classes não podem estender objetos regulares (não construíveis). Se você deseja herdar de um objeto regular
-
Em vez disso, você precisa retornar
-
No entanto, devido a decisões incertas sobre se super()deve ser chamado dentro do construtor, não é possível
-
extends nullfoi projetado para permitir
-
Portanto, uma maneira melhor de estender os built-ins
-
Qualquer adição de novos métodos na classe base também pode
-
Se você deseja criar subclasses de built-ins enquanto alcança as expectativas acima, você precisa
-
Novos métodos internos sempre constroem a classe base e chamam
-
Esses problemas não são exclusivos de classes internas. Para suas próprias classes, você provavelmente terá que tomar as mesmas decisões. No entanto, para classes internas
-
No entanto, as expectativas acima exigem esforços não triviais para serem implementadas adequadamente.
-
Aqui estão algumas coisas que você pode esperar ao estender uma classe:
-
Se o construtor da classe pai retornar um objeto, esse objeto será usado como
Esse truque é chamado
-
Enquanto a classe base pode retornar qualquer coisa de seu construtor, a classe derivada
-
O thisvalor na extendsexpressão está
-
O lado direito de extendsnão precisa ser um identificador. Você pode usar
Isso geralmente é útil
-
extendsdefine o protótipo para ambos ChildClasse ChildClass.prototype.
-
A prototypepropriedade do ParentClassdeve
-
As duas condições devem ser válidas — por exemplo, funções vinculadas e Proxypodem ser construídas, mas não têm uma prototypepropriedade, portanto
-
A extendspalavra-chave pode ser usada para criar
Bem como
-
Qualquer construtor que possa ser chamado newe tenha a prototypepropriedade
-
A extendspalavra-chave é usada em
Para
-
- Aug 2023
-
docs.obsidian.md docs.obsidian.md
-
HelloWorldPlugin
Is this necessary for the plugin to function?
-
- Jun 2023
- May 2023
-
share-on-mastodon.social share-on-mastodon.social
-
https://share-on-mastodon.social/
A really neat customizable "Share on Mastodon" button for your pages or posts.
-
-
jan.boddez.net jan.boddez.net
-
Another downside to using Gutenberg’s sidebar panels is that, as long as I want to keep supporting the classic editor, I’ve basically got to maintain two copies of the same code, one in PHP and another in JavaScript.
Note to self: getting into WP Gutenberg is a shift deeper into JS and less PHP. My usually entry into creating something for myself is to base it on *AMP (MAMP now) so I can re-use what I have in PHP and MySQL as a homecook.
-
- Mar 2023
-
cocktailpeanut.github.io cocktailpeanut.github.ioDalai1
-
컴퓨터에서 LLAMMA AI를 실행하는 매우 간단한 방법인 Dalai cpp 파일 빌드, github 복제, 파일 다운로드 등을 귀찮게 할 필요가 없음. 모든 것이 자동화 됨
-
-
www.typescriptlang.org www.typescriptlang.org
-
const requiredMetadataKey = Symbol("required");
-
- Feb 2023
-
skilldrick.github.io skilldrick.github.io
-
The simulator widget below contains the entire source code of the game. I’ll explain how it works in the following sections.
Tags
Annotators
URL
-
- Dec 2022
-
-
Typescript added rich type annotations to Javascript, which opened the door to refactoring and static analysis tools that facilitate development and maintenance of large Javascript projects.
Tags
Annotators
URL
-
-
qwik.builder.io qwik.builder.io
-
Qwik Tutorials
This is a note, actually I'm just testing how well this works
-
-
v2.cn.vuejs.org v2.cn.vuejs.org
-
组件注册
-
-
www.zhihu.com www.zhihu.com
-
如何评价 Ant Design 这个项目(一个设计语言)?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
前端如何给 JavaScript 加密(不是混淆)?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
怎样用 JavaScript 程序获取客户的 IP 地址?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
怎样防止重复发送 Ajax 请求?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
bootstrap+jq+ES5 真的比react/vue/angular+ES6 low吗?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何评价 hegel 这个 type checker?
Tags
Annotators
URL
-
-
-
对大量使用 immutable data structure 的语言,其 VM 和 GC 会有何特点?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
设计闭包(Closure)的初衷是为了解决什么问题?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
操作 AST 树都有哪些标准算法,各自的优缺点是什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
什么是闭包?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
async/await异步模型是否优于stackful coroutine模型?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
使用yield可以做哪些很酷的事情?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Racket这种可以把语言特性写成库的语言为何没有得到广泛的工业应用?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
你用 Node.js 写过哪些大型/复杂的应用?碰到什么难点?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
闭包(closure)在异步请求处理中有哪些优势?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Prototype based和Class based的系统哪个更OOP?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Google Chrome有什么自动翻页的解决方案?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何优雅地结合类 Redux 处理异步通信的中间状态?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何评价数据流管理架构 Redux?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
前端小白如何学习cycle.js?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
vue2中如何卸载或者重新渲染一个缓存的组件?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Vue.js中如何动态的加载、卸载组件?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
elm如何既能对状态进行统一管理又能保持分形的呢,在我看来 集中管理 跟 分形 是一对矛盾?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Rx.js 的定位到底是什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
generator有哪些玩法?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
ES6+中的Generator 函数有何特别之处?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何评价 Webkit 推出的并发 JavaScript 提案?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript一个疑问,[ ] (空数组)== true ,具体如下,请问这是为何?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
应该使用 const 定义 object 和 array 吗?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
想要理解函数式编程的思想,最好用哪种函数式编程语言入门?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
有哪些函数式编程在前端的实践经验?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Mixin是什么概念?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 的设计优点是什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
动态类型的语言的优缺点有哪些?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
为什么JavaScript里函数的arguments只是array-like object?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Meteor 和 Require.js联用,js 文件的执行顺序?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
在浏览器中基于模块进行JavaScript异步加载有什么意义?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
当下如何拥抱ES6的模块化机制?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
cjs的模块如何和es6的模块相互调用?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
javascript:什么时候会用类的[Symbol.species]属性代替构建函数创建对象?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
使用ES6 Module如何处理模块按需加载 (lazyload)?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
javascript 中使用 onLoad 函数的意义是什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
这是requirejs源码的bug吗?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript中对 function 的参数进行重新赋值的影响?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript的功能是不是都是靠C或者C++这种编译语言提供的?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 有哪些常见的类数组 ?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何将一个 JavaScript 数组打乱顺序?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript对表达式的优化?
Tags
Annotators
URL
-
-
-
JavaScript中使用object[key]查找属性的过程是怎样的呢(相对于Array查找元素)?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 为什么不在Number上部署[Symbol.iterator] ?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript中 0==null为何是false?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
js中string类型和int类型的界限到底怎么回事?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 内置对象类型的 Date、String,具体是怎么实现的,可以给出一段代码吗?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript字符串底层是如何实现的?
Tags
Annotators
URL
-
-
-
JavaScript 里最大的安全的整数为什么是2的53次方减一?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 中,定义函数时用 var foo = function () {} 和 function foo() 有什么区别?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript / ES6新关键词 let 是否在任何情况下都优于 var?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
var声明的变量为什么不能被删除?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
全局作用域下var a = 2和a = 2有什么区别?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript中运算符优先级的问题?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何进行前端自动化测试?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
对于前端工程师,测试 ajax 接口有什么好方法?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 函数式编程存在性能问题么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
有哪些 JS 调试技巧?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript引擎、虚拟机、运行时环境是一回事儿吗?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
javascript原型链继承的本质?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
js浮点数精度问题的前世今生?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何理解es6中的import是静态编译执行的?(一说是编译期执行的)?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 为什么不推荐使用 eval?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 的正则表达式中的 \b 以及 \B 问题?
Tags
Annotators
URL
-
-
-
JavaScript 中原型继承(prototype-based inheritance)的原理是怎样的?
Tags
Annotators
URL
-
-
-
JavaScript原型继承有什么优点?(对象间的继承) JavaScript类继承呢?(构造函数间的继承)
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Angular的脏检测跟Vue的数据劫持相比有什么优势和劣势?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
关于具名的IIFE内部对函数自身再赋值问题?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript中typeof返回NaN我该怎么理解它?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
JavaScript 的 this 关键字是一个好的设计吗?
-