JSMin

JavaScript继承(四)——原型式继承

冷暖自知 提交于 2020-02-29 14:10:00
道格拉斯·克罗克福特在2006年提出了原型式继承,他的想法是基于已有的对象借助原型创建新对象,同时还不必因此创建一个自定义类型。为此,他给出了下面的函数: function object(obj){ function F(){} F.prototype = obj; return new F(); } 在 object 函数内部,先创建了一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型,最后返回了这个临时类型的一个新实例。其实本质还是原型链继承,只不过达到的效果是没有为新创建的对象单独声明一个类型,相当于简化版的原型链继承。来看下面具体的示例: let p = { name: 'bob', friends: ['jack', 'rose'] } let p2 = object(p); console.log(p); console.log(p2); 结果如下: 这个效果和下面这种写法差不多 let p2 = {}; p2.__proto__ = p; console.log(p); console.log(p2); 结果如下: 那为什么不直接使用这种方式呢?原因之一是直接操作对象的 __proto__ 属性比较损耗浏览器的性能。 既然还是原型链继承,那么原型链继承的数据共享问题当然也是存在的,如下示例: p2.friends.push('lily'); console

如何在Notepad ++中重新格式化JSON?

扶醉桌前 提交于 2019-12-17 19:33:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我需要Notepad ++从中获取一个json字符串 {"menu": {"id": "file","value": "File","popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},{"value": "Open", "onclick": "OpenDoc()"},{"value": "Close", "onclick": "CloseDoc()"}]}}} 对... {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} 我环顾了所有TextFX选项,但找不到任何有用的东西。 #1楼 我知道你问的是NotePad ++,但OS X的TextMate可以通过JSON包来实现,它叫做“Reformat Document”命令。 #2楼 Notepad ++的