在另一个文件中的函数中访问var函数
Accessing var function within function in another file
我有2个JS文件-一个是我想访问的函数,另一个是我想调用的函数。
(function($) {
var Place = function() {
var Location = function(id, duration, check) {
//Should access this function
}
}
})(jQuery);
我试图访问它:
Place.Location(markerId, 600);
但是我得到的是它没有定义。这个问题很简单,但我不能完全解决这个问题。
因为它是一个jQuery插件,也许有一种方式,我可以通过另一种方法访问它?
$.fn.place = function(params) {
var len = this.length;
return this.each(function(index) {
var me = $(this),
key = 'place' + (len > 1 ? '-' + ++index : ''),
instance = (new Place).init(me, params);
});
};
您定义Location
的方式,它是函数Place
内部的私有变量。如果您想将其作为Place
的属性访问,则应将var Location = ...
替换为this.Location = ...
它超出了范围。因为您在function($) {}
中包装了Place对象,所以现在包装器之外的任何东西都不再能够访问包装器内的变量。如果$代表jQuery,它应该是一个全局变量,你可以把包装器拿出来。
解决方案是其他两个答案的组合。
- 您将
Place
定义为(匿名)函数中的变量。它不能在该函数的作用域之外使用。(这个函数也不使用jQuery,所以不需要包装器)。 -
Place
为函数。它执行将局部变量Location
设置为函数的代码,但不导出该函数,因此Location()
在Place
函数之外不可访问。
你的意思可能是让Place
成为一个对象(而不是一个函数),并给它一个Location
方法。这里有一种写法:
var Place = {
Location: function(id, duration, check) {
// do something with id, duration, & check
}
};
// execute
Place.Location(someId, someDuration, someCheck);
(它看起来不像你已经发布了所有的代码,像Place.init()
方法,但有很多方法来写这个,使它正确工作;
相关文章:
- javascript函数访问ios本机功能
- 从嵌套函数访问函数属性
- 将typescript函数访问到angular中
- 全局变量只能由第一个函数访问
- Javascript从匿名函数访问外部对象属性
- UI网格:如何从自定义函数访问MODEL_COL_FIELD
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- 如何在JavaScript中停止从特定函数访问某些函数和变量
- 从jQuery.ech()函数访问外部作用域
- Angular2/Typescript:从链接可观察函数访问实例变量
- 局部变量仍可通过函数访问
- 从Kendo中的columns.filterable.cell.template函数访问列字段名
- 可以't从JS函数访问combodate
- 如何在javascript中将变量从一个函数访问到另一个函数
- jQuery从PHP函数访问Ajax响应
- 如何从json函数访问javascript中的基类变量
- 在OPP JS中,您可以从构造函数访问原型函数内部声明的方法
- Javascript 使用函数访问其他类
- 从 JavaScript 中的私有函数访问公共函数
- 为什么我无法从茉莉花中的 javascript 函数访问全局变量