我写了这段代码来自学JavaScript关闭:
function1 = function(){
var variable = "foo"
var function2 = function(argument){
console.log(variable + argument);
}
return function2
}
function3 = function1();
function3("bar");
Run Code Online (Sandbox Code Playgroud)
按预期打印"foobar".但变量在哪里生活?
它是否成为function3的属性,还是存储在function3中的其他位置?JavaScript是否遍历某种闭包链,类似于它如何遍历原型链?它存储在其他地方的内存中吗?
我想更深入地了解这一点.
这种感觉非常基本,没有人愿意解释它.我正在尝试在我的应用程序中使用fullcalendar库.在Basic Usage下的文档中,我发现了这个:
在网页上嵌入日历的第一步是拥有正确的JavaScript和CSS文件.确保在页面中包含FullCalendar样式表,以及FullCalendar,jQuery和Moment JavaScript文件:
Run Code Online (Sandbox Code Playgroud)<link rel='stylesheet' href='fullcalendar/fullcalendar.css' /> <script src='lib/jquery.min.js'></script> <script src='lib/moment.min.js'></script> <script src='fullcalendar/fullcalendar.js'></script>
在下载中,它说:
您可以通过NPM安装FullCalendar:
$ npm install fullcalendar
我不明白的是,我在哪里可以找到包含的fullcalendar.css,jquery.min.js,moment.min.js和fullcalendar.js文件?NPM安装不会将文件夹下载到我可以拖入我的项目的下载文件夹中,它会将文件添加到我的node_modules文件夹中,我怀疑我应该在那里搜索文件(我的node_modules文件夹有数千个其中的文件夹).我尝试使用webpack捆绑js文件,认为它可能会自动将它们包含在捆绑包中,但这不起作用.我错过了什么?
我想添加一个没有App作为父级的登录页面.这是我目前的HashRouter设置:
<Provider store={ store }>
<HashRouter>
<App>
<Route path='/path1' component={ Component1 } />
<Route path='/path2' component={ Component2 } />
<Route path='/path3' component={ Component3 } />
</App>
</HashRouter>
</Provider>
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
<Provider store={ store }>
<HashRouter>
<div>
<Route path='/login' component={ Login } />
<App>
<Route path='/path1' component={ Component1 } />
<Route path='/path2' component={ Component2 } />
<Route path='/path3' component={ Component3 } />
</App>
</div>
</HashRouter>
</Provider>
Run Code Online (Sandbox Code Playgroud)
然后我在应用程序上方获得登录页面.这是我的应用程序组件:
const App = ({ children }) => (
<div>
<Navbar/>
<div className='col-md-10 col-md-offset-1'>
{ children …
Run Code Online (Sandbox Code Playgroud) 我收到错误“未初始化的常量User :: BCrypt”。
我检查了这个问题:https : //github.com/ryanb/nifty-generators/issues/68
建议的捆绑安装解决方案不起作用(当然,我经常捆绑安装)。
我检查了这个问题:https : //github.com/codahale/bcrypt-ruby/issues/89
建议将gem更改为“ bcrypt-ruby”而不是“ bcrypt”的解决方案确实将我的gem更新为较新的版本,但并不能解决问题。
这是我的用户模型
class User < ActiveRecord::Base
validates :username, :password_digest, :session_token, presence: true
validates :session_token, uniqueness: true
attr_reader :password
def self.find_by_credentials(username, password)
user = User.find_by_username(username)
user.try(:valid_password?, password) ? user : nil
end
def valid_password?(password)
BCrypt::Password.new(self.password_digest).is_password?(password)
end
def password=(password)
@password = password
self.password_digest = BCrypt::Password.create(password)
end
def reset_session_token
self.session_token = SecureRandom.urlsafe_base64
self.save!
self.session_token
end
end
Run Code Online (Sandbox Code Playgroud) javascript ×2
bcrypt ×1
closures ×1
css ×1
fullcalendar ×1
html ×1
npm-install ×1
react-router ×1
reactjs ×1