今天我在玩的时候注意到Chrome控制台中的一些对象被显示为Object而不是构造函数名称.
这很奇怪,所以我把它归结为以下代码:
function Baz() {
this.baz = true;
}
var b = new Baz();
var c = Object.create(b);
console.log(b); // why is b outputting with Object not Baz?
Run Code Online (Sandbox Code Playgroud)
在上面的代码中b,不是通过a创建的Object.create,但是在记录时它表示Object.我没有错字,错误地询问c.当我甚至没有碰到那个物体时,b的记录已被改变.创建另一个实例c,不应该改变b.
这必须是Chrome错误吗?反正有没有让Chrome在Baz这里正确报道?
这对于调试目的很重要.

更新错误提交:https://code.google.com/p/chromium/issues/detail? id = 478522
在大多数现代JS框架中,松散耦合UI组件的最佳实践是Pub/Sub的一些实现.
我的问题是这不会使调试,维护你的应用程序更加困难,而依赖注入可以实现相同的结果(松散耦合)?
例如,我的组件应该在单击时打开一个对话框.这需要发生,否则UI将显示为已损坏.对我来说,让组件显式调用某些对话框服务似乎更具可读性.在野外,我看到这个问题解决了更多与pub sub,所以也许我错过了一些东西.
当同时使用这两种方法时,哪些地方可以在事件触发事件或使用注入服务实现该操作时绘制线?
我目前是使用JavaScript构建Windows 8应用程序团队的一员.我们使用npm和browserify来管理依赖项并将我们的模块转换为AMD浏览器友好格式.
我们遇到的一个问题是疯狂的需求路径.这是因为我们的应用程序"组件"中有一个顶级文件夹.该文件夹包含一堆嵌套的ui组件/模块.这些模块有时需要lib utils和helper,它们位于lib目录中.
例如,生活在"my/app/components/product/grid/item"中的模块可能需要一个位于"my/app/lib/helpers/view"的帮助程序模块.
require路径有点疯狂,非常难看:require("../../../../ lib/helpers/view");
我们正在尽力以模块化方式构建应用程序.现在我认为解决这个问题的正确方法是让我们的组件模块依赖于这些util辅助模块.我可以把lib帮助器放到他们自己的外部私有git仓库中,但是在给其他团队访问方面一直很痛苦(加上git private repos很慢).此外,由于这些模块仅用于应用程序,因此进行更改,推送更改,然后返回应用程序和npm更新是浪费时间.这对某些人来说没什么问题,但是如果我们真的打破了它,它可能会变得很快.
我可以在组件package.json中安装npm install"my/app/lib/helpers/view"吗?但是npm install不会自动为我们这样做.
我知道其他一些方法(NODE_PATH,可能使用npm安装钩子或npm预安装脚本),但想知道是否有其他人有类似的问题和良好的解决方案.
首先,在标记中使用data-win-bind属性时是否可以设置任何属性列表?
我想做的一些事情: