gpt4 book ai didi

Sproutcore 2 - 类方法和变量

转载 作者:行者123 更新时间:2023-12-02 00:32:23 24 4
gpt4 key购买 nike

我一直在实现这个答案中所示的类方法

Basic Sproutcore: class method, class variables help

但它不再适用于 Sproutcore 2:-

MyFooClass.mixin({
barClassMethod: function() {
/* ... */
}
})

给出错误

MyFooClass.mixin [undefined] is not a function

我已尝试通读 Sproutcore 源代码,但无法真正识别任何类方法或变量,这让我感到非常惊讶。

也许我只是做错了?

最佳答案

扩展 sproutcore 类时应牢记两点。

首先,您必须先定义您的类,然后才能将某些东西混入其中。因此,首先使用

创建您的类/对象
MyFooClass = SC.Object.extend({ ... });

MyFooClass = SC.Object.create({ ... });

而第一个语句将创建一个类,第二个语句将创建一个类的具体实现(用面向对象的术语来说就是一个对象)。通常,如果您使用 SC.Object.create() ,目标是创建一个单例对象,否则使用 SC.Object.extend() 定义您的类,并使用定义的类创建您定义的类的对象

myFooObject = MyFooClass.create();

因此,请确保首先定义了要混入方法中的类或对象,并且在您要使用它时已经在范围内。

其次,如果您想将其他方法或属性混合到预先存在的类或对象中,请按如下方式使用 SC.mixin

SC.mixin(MyFooClass, {
yourMixedInMethod: function() {
console.log('mixed in method called');
}
});

您也可以对对象执行此操作,但请注意,只有给定的对象才能获得混合方法,而不是该类的所有实例。如果您希望所有实例都获得您必须混合到类定义中的附加功能。

关于Sproutcore 2 - 类方法和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6214236/

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