0

我想从 YUI 沙箱中获取数据并将其传递给另一个函数。例如,如果我有类似的东西:

YUI().use('node','stylesheet', function (Y)
{
    var sheet = Y.StyleSheet('#myStyle');
    // Some logic...
    var styleSheetText =  sheet.getCssText("h1");
});

console.log(styleSheetText); //still undefined

如何在 console.log 中正确获取 o 值styleSheetText?我现在不知道是 JavaScript 问题还是 YUI 问题。

4

1 回答 1

2

两者兼而有之。在 JavaScript 中,您无法在声明它的函数之外看到变量的值。如果您在 YUI().use() 的回调函数中声明 styleSheetText,则无法在该回调函数之外看到它的值。

这也是一个 YUI 问题。YUI().use() 的回调函数将异步执行,也就是说,执行的时间是不可预测的,但它总是在 console.log() 语句被执行之后。因此,即使您将 styleSheetText 设为全局以解决变量可见性问题,它仍然会显示未定义。

通常,您将所有代码放在 YUI().use() 的回调函数中。这将解决这两个问题。

于 2013-11-06T07:09:23.537 回答