javascript参数的问题
尝试在对象内使用javascript参数的问题,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,尝试在对象内使用mColumns参数时,我遇到了以下代码的问题。第一个控制台日志正确输出,但传递到Backbone.View.extend的对象内部的日志不正确,它输出未定义的日志 define(["collections/mColumns"],function(mColumns){ console.log(mColumns); return Backbone.View.extend({ el: "#content",
mColumns
参数时,我遇到了以下代码的问题。第一个控制台日志正确输出,但传递到Backbone.View.extend
的对象内部的日志不正确,它输出未定义的日志
define(["collections/mColumns"],function(mColumns){
console.log(mColumns);
return Backbone.View.extend({
el: "#content",
events:{
'click #addText': "addText"
},
initialize: function(mColumns){
console.log(mColumns);
}
});
});
但是,如果我事先创建了一个对象,然后将该对象作为参数传递,则效果很好。两个控制台都正确记录输出
define(["collections/mColumns"],function(mColumns){
console.log(mColumns);
var obj = {
el: "#content",
events:{
'click #addText': "addText"
},
initialize: function(){
console.log(mColumns);
}
}
return Backbone.View.extend(obj);
});
这是为什么?工作(第二个)代码段和第一个代码段之间的区别在于第一个代码段隐藏了
mColumns
变量。通过定义具有相同名称的正式函数参数,原始变量对函数内的代码不可见:
define(["collections/mColumns"],function(mColumns){ // <-- mColumns (#1)
...
return Backbone.View.extend({
...
initialize: function(mColumns){ // <-- mColumns (#2)
console.log(mColumns); // <-- Refers to #2
}
})
});
define([“collections/mColumns”]、function(mColumns){//你知道你在第一种情况下跟踪了mColumns
,是吗?@RobW你说得对,谢谢你,新手错了,如果你把它作为一个答案发布,我很乐意把它标记正确