Javascript 如何在内部使用变量
我想在内部使用变量,我看到其他人也这么做,但为什么它对我不起作用 这是我的ES6文件Javascript 如何在内部使用变量,javascript,ecmascript-6,fullcalendar-4,Javascript,Ecmascript 6,Fullcalendar 4,我想在内部使用变量,我看到其他人也这么做,但为什么它对我不起作用 这是我的ES6文件 // Setup module // ------------------------------ var FullCalendarAdmin = function () { // // Setup module components // var _componentRender = function () { // Basic calendar var
// Setup module
// ------------------------------
var FullCalendarAdmin = function () {
//
// Setup module components
//
var _componentRender = function () {
// Basic calendar
var _componentFullCalendarAdmin = function (events) {
// Define element
var calendarAgendaViewElement = document.querySelector('.fullcalendar-agenda-admin');
// Initialize
if (calendarAgendaViewElement) {
var calendarAgendaViewInit = new FullCalendar.Calendar(calendarAgendaViewElement, {
plugins: ['dayGrid', 'timeGrid', 'interaction'],
select: function (start, end) {
var title = prompt("Add event:");
var data;
if (title != '') {
data = {
title: title,
start: start,
end: end
};
calendarAgendaViewInit.addEvent(data);
}
}).render();
}
};
//
// Return objects assigned to module
//
return {
init: function () {
_componentRender();
}
}
}();
// Initialize module
// ------------------------------
document.addEventListener('DOMContentLoaded', function () {
FullCalendarAdmin.init();
});
如何使用CalendarAgendaWinit
调用addEvent
函数,而不将函数作为未定义的错误获取
提前谢谢 问题是您需要立即调用
.render
。因此,您的
CalendarAgendaWinit
不是FullCalendar.Calendar
的实例,而是render
方法的结果。您可以做的是首先定义
CalendarAgendaWinit
变量
var calendargendaviewinit=new FullCalendar.Calendar(calendarAgendaViewElement{
插件:['dayGrid','timeGrid','interaction'],
选择:功能(开始、结束){
变量标题=提示(“添加事件:”);
var数据;
如果(标题!=''){
数据={
标题:标题,,
开始:开始,
完:完
};
日历代理daviewinit.addEvent(数据);
}
});
然后调用
calendarAgendaViewInit.render()
问题是您立即调用.render
。因此,您的
CalendarAgendaWinit
不是FullCalendar.Calendar
的实例,而是render
方法的结果。您可以做的是首先定义
CalendarAgendaWinit
变量
var calendargendaviewinit=new FullCalendar.Calendar(calendarAgendaViewElement{
插件:['dayGrid','timeGrid','interaction'],
选择:功能(开始、结束){
变量标题=提示(“添加事件:”);
var数据;
如果(标题!=''){
数据={
标题:标题,,
开始:开始,
完:完
};
日历代理daviewinit.addEvent(数据);
}
});
然后调用
calendargendaviewinit.render()
这是对上述注释的一种扩展解释。看起来calendarAgendaViewElement
只是一个DOM元素,您已经找到并分配给了一个变量。这里的问题是,您只能在类实例化上调用方法,而这些类实例化现在是包含方法的对象。如果您看到其他人调用 addEvent
就像这样,然后他们很可能在类的实例化上调用它,这意味着addEvent
以前已经声明为该类的一部分,他们只是调用该方法
参见下面的示例
如果我声明一个类如下:
class Sample {
sayHello(){
console.log('hello')
}
}
然后实例化“Sample”类的新对象:
var sampleClass = new Sample()
然后我可以通过引用对象内部的方法来调用“sayHello”
sampleClass.sayHello()//你好
希望对您有所帮助这是对上述注释的一种扩展解释。看起来,
calendarAgendaViewElement
只是一个DOM元素,您已经找到并分配给了一个变量。这里的问题是,您只能在类实例化上调用方法,这些类实例化现在是包含方法的对象。如果您看到其他的像这样调用addEvent
,然后他们很可能在类的实例化上调用它,这意味着addEvent
以前已声明为该类的一部分,他们只是调用该方法
参见下面的示例
如果我声明一个类如下:
class Sample {
sayHello(){
console.log('hello')
}
}
然后实例化“Sample”类的新对象:
var sampleClass = new Sample()
然后我可以通过引用对象内部的方法来调用“sayHello”
sampleClass.sayHello()//你好
希望这对您有所帮助如果您在函数中声明“函数本身”,那么您尝试编写的是对象类:。谢谢!查看它如果您在函数中声明“函数本身”,那么您尝试编写的是对象类:。谢谢!查看它