liuqinh2s' blog

Do something cool!


  • 首页

  • 关于

  • 标签

  • 归档

  • 编程笔记

  • 新闻

  • 收藏

  • 思考

  • 前端面试

  • 力扣

  • 计算机科学

  • 量化交易

  • 英语

  • 导航

  • 阅读

  • 搜索

模拟实现JavaScript的new操作符

发表于 2023-11-20 | 更新于: 2025-08-19
字数统计: 434

JavaScript 的 new 操作符,操作对象是一个函数(箭头函数,async 函数除外),一般来说此函数我们不自己写 return,此时返回的是个默认的对象 this。

如果自己写了返回,那么分两种情况:

  1. 返回的是对象或者方法,就返回我们自己写的返回内容
  2. 否则返回默认对象 this
阅读全文 »

JavaScript对象的继承有哪几种

发表于 2023-11-20 | 更新于: 2025-08-19
字数统计: 1,198

javascript 高级程序设计中有写,对象的继承总共有六种:

  1. 原型链继承,子原型是父原型的一个实例
  2. 借用构造函数继承,子构造函数调用父构造函数
  3. 组合式继承(组合 1 和 2)
  4. 原型式继承
  5. 寄生式继承
  6. 寄生式组合继承(组合 3 和 5)
阅读全文 »

策划一款游戏

发表于 2023-11-06 | 更新于: 2025-08-19
字数统计: 78
最近玩了 Beecarbonize,一款欧盟资助的减碳排放小游戏。属于公益类,教育类的游戏。非常的简单有趣。遂萌生了自己也做一款类似的游戏,打算模仿这个玩法,换一个主题。 该游戏的要素有: 卡牌 事件牌
阅读全文 »

实现一个高效的deepClone

发表于 2023-11-01 | 更新于: 2025-08-19
字数统计: 548

先来实现一个最简版的 deepClone

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function deepClone(obj) {
if (
obj == null ||
typeof obj == "string" ||
typeof obj == "boolean" ||
typeof obj == "number"
) {
return obj;
}
if (Array.isArray(obj)) {
let temp = [];
for (let i = 0; i < obj.length; i++) {
temp[i] = deepClone(obj[i]);
}
return temp;
} else if (typeof obj == "object") {
let temp = {};
for (let k of Object.keys(obj)) {
temp[k] = deepClone(obj[k]);
}
return temp;
}
}

迭代版本的 deepClone

最近 EDA 项目在解决一些性能上的问题,首当其冲的就是 deepClone,各种地方都在用,且十分卡性能。如何解决这个问题呢?

由于我们项目中的 deepClone 是一个递归版本的 deepClone,所以应该可以通过把它改成迭代版的 deepClone 来提速。

用栈来实现迭代。函数调用栈本身也是栈,但开销肯定比自己写的栈要大一些。

阅读全文 »

一种速算

发表于 2023-10-30 | 更新于: 2025-08-19
字数统计: 186

以 5 结尾的数的平方,都有一个很好记的速算方式,就是前面的数乘以比它大一的数然后再拼接上 25,比如 $25\times 25$,就是 $2\times 3$ 等于 6,再拼接上 25,等于 625。

阅读全文 »
1…345…22
liuqinh2s

liuqinh2s

106 日志
44 标签
RSS
GitHub Twitter
Links
  • liam
  • jiyanggg
  • 曾小乱 – 在描绘他的生活倒影
© 2025 liuqinh2s | Site words total count: 118.3k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4