JavaScript 原型链

js 中,除了 null,每个对象都会继承另一个对象,后者称为“原型对象”。原型对象的所有属性和方法都可以被派生对象共享,这就是 js 的继承机制。通过构造函数生成实例对象的时候,会自动给实例对象分配原型对象。实例对象生成时候的构造函数的 prototype 属性即为实例对象的原型对象。(在此我们需要注意原型对象是实例对象【生成时】的构造函数的 prototype 属性,因为构造函数的 prototype 属性后来是可以更改的,而先前生成好的实例的原型是不会跟着变的。)

More

toString.call() 引起的一些思考

toString 作为全局方法时,挂载于 window 全局对象。原型链最顶层的原型对象 Object.prototype 有 Object.prototype.toString 方法(其实,这个方法就是和全局的 toString 是同一方法),另外,一些内置构造函数 Array、String、Boolean、Function、Date 等也都分别部署了自己的 toString 方法。

More

JavaScript 24 点游戏算法

24 点:棋牌类益智游戏,要求 4 个数字运算结果等于 24。这个游戏用扑克牌很容易开展,拿一副牌,抽去大小王后以及 J/Q/K 后,剩下 1~10 这 40 张牌(以下用 1 代替 A)。任意抽取4张牌(称为牌组),用加、减、乘、除(可加括号,高级玩家也可用乘方开方运算)把牌面上的数算成 24。每张牌必须且只能用一次。比如抽出的牌是 3、8、8、9,那么算式可以为 (9-8)×8×3=24。

More

JavaScript 排序算法

排序算法作为老生常谈的话题,其实现方式多种多样,这里给出冒泡排序、选择排序、插入排序、合并排序、快速排序等 5 种排序的一种实现,以便将来参考和在此基础上改进。

More