JS/JQ:从内联函数访问变量
JS/JQ: Access variable from inline function
我正试图在getJSON函数中使用一个变量。我怎样才能把它传进来?这就是我尝试过的。
function getComments(parent_id) {
if(typeof(parent_id)==='undefined') parent_id = -1;
console.log("parent_id type: " + typeof(parent_id)); // parent_id type: number
var message = { parentMessageID: parent_id };
$.getJSON(UPDATECOMMENTCALL, message, function(data, parent_id) {
console.log("JSON parent_id: " + typeof(parent_id)); // JSON parent_id: string
}
}
函数中parent_id不是-1,而是一个值为"success"的字符串。我怎样才能把它正确地传进来?
您可以直接使用它,不要将它作为参数放在getJSON的回调函数中,只将它作为变量使用,因为它已经是全局的了。
回调函数参数的优先级高于同名范围变量(parent_id
)。因此,通过在回调函数中访问它,您实际上是在引用函数参数,而不是在函数外部定义的变量。更改回调变量的名称将修复它。例如:
var parent_id = -1;
console.log("parent_id type: " + typeof(parent_id)); // parent_id type: number
var message = { parentMessageID: parent_id };
$.getJSON(UPDATECOMMENTCALL, message, function(data, p_id) { // changed to p_id
console.log("JSON parent_id: " + typeof(parent_id)); // JSON parent_id: string
}
一般来说,避免使用相同的名字是个好主意,这样就可以避免所有重复的名字。
<小时>简单的例子向您展示正在发生的事情:
var a = 1;
function f(a) {
console.log(a);
}
想想f(2);
会输出什么。
相关文章:
- 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 函数访问全局变量