gpt4 book ai didi

sproutcore - SproutCore命名空间

转载 作者:行者123 更新时间:2023-12-03 13:38:02 25 4
gpt4 key购买 nike

我想知道如何使用SproutCore的OOP实现创建命​​名空间对象。我过去曾与Joose合作过,并且会自动生成 namespace ,例如:

Class('MyNamespace.AnotherNamespace.ClassName',{})

但是在SproutCore中,看起来您可能必须自己创建单个对象?我觉得这有点乏味。我想念什么吗?

任何帮助将不胜感激。

谢谢

最佳答案

SproutCore类很容易创建:SC.Object.extend({...})。任何对象的任何未保留的属性都可以视为 namespace 。只需放入SC.Object(SC.Object.create)。根据hvg的回答,您可以在实例化应用程序时声明它,或者稍后在另一个文件中声明它:

MyApp.SubNamespace = SC.Object.create({
ClassName: SC.Object.extend({...}),
OtherClassName: SC.Object.extend({...})
});

这与您的Joosie示例相比,没有更多的代码。您观察到不是自动为您创建 namespace 的观察是正确的,但这具有语义上的好处:您可以在创建 namespace 的同时定义所有 namespace 的内容,这有助于代码的集中化;并且可以防止您不小心自动定义拼写错误的 namespace 的错误。

这里的关键见解是您的应用程序对象不仅仅是一个 namespace ,它是提供应用程序功能的类的 Activity ,动态实例。您的所有应用程序代码均应放入应用程序对象中这一事实创建了一种自然的 namespace ,而且我发现大多数时候我的子命名空间都以相同的方式工作(myApp.mainPage,myApp.contentController,myApp.remoteDataSource, myApp.statechart)。当然,也欢迎您通过SC.Object的专用实例将代码组织到专用的 namespace 中,我经常这样做,但是SC应用程序倾向于高度自组织。

关于sproutcore - SproutCore命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14221056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com