Javascript,module.exports在" Eloquent Javascript"的第10章中。

时间:2018-01-09 14:55:42

标签: javascript variables scope

以下是代码:

<Window x:Class="ListBindingWpfApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ListBindingWpfApp"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
    </Grid.RowDefinitions>
    <StackPanel>
        <TextBlock Text="Font size slider:"></TextBlock>
        <Slider Maximum="30" Minimum="5" Value="{Binding FontSize}"/>

    </StackPanel>
    <ListBox Grid.Row="1"  Name="CardsListBox" ItemsSource="{Binding Path=Items}" 
     Background="Transparent" BorderBrush="Transparent">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding}" FontSize="{Binding DataContext.FontSize, RelativeSource={RelativeSource AncestorType=Window}}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

function require(name) { if (name in require.cache) return require.cache[name]; var code = new Function("exports, module", readFile(name)); var exports = {}, module = {exports: exports}; code(exports, module); require.cache[name] = module.exports; return module.exports; } require.cache = Object.create(null); 对象的作用是什么?例如,为什么&#39; t require.cache变量可以保持一个函数?因为本书的作者告诉我们,我们不能将一个函数导出到这个变量中。

据我所知,僵尸exportsexport将(实际上可以)拥有相同类型的数据。

谢谢!

1 个答案:

答案 0 :(得分:1)

缓存用于避免重新需要某些内容,这在require的第一行中使用,否则,您必须实际读取该文件。

该行:     var exports = {},module = {exports:exports};

使export和module.exports引用同一个对象。

没有理由你不能导出一个函数,作者的实际措辞是什么?