求助!!!JavaScript 问题:是否可以在被调用函数中获取调用函数内的属性

本贴最后更新于 811 天前,其中的信息可能已经沧海桑田

需求

imagepng
    页面如上,根据 p11-p33 求 result 值,求值过程中有可能用到 b()函数,也有可能不使用,A result 和 B result 拥有特有的 method 属性值,b()函数需根据参入的参数 +result 对应的 method 属性值到后台获取结果,现为 result 框添加点击事件为 a(),其中 obj 为 result 的 method 属性值,formulaValue 为计算结果所执行的结果计算公式
    代码如下:

// 假设formulaValue为b()
function a(obj,formulaValue){
  this.name = obj;
  var p = obj;
  var r = eval(formulaValue);
  console.log(r);
}

function b(){
  var r = $.ajax({
        url: "xxx.com",
        data: {"name":name},
        type: "POST",
        cache : false,
        async: false
    });
  return r.responseText;
}

问题 1:b()是否可以获取到 a()的 name 属性或者 p 属性

问题 2:如问题 1 可行,每隔 10 秒调用一次 a(),b()获取的属性和返回的值是否为当次调用所对应的值

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    582 引用 • 1096 回帖 • 772 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1671 引用 • 11011 回帖 • 581 关注
7 回帖
请输入回帖内容...
  • 88250
  • Vanessa

    b 传参

    2 回复
  • ronger

    有修改,V 姐你再看看😄

  • ronger

    现在的问题是 b 传的参数是事先写好的,而 name 是不确定的

  • Vanessa

    这样不可以么?

    function a(obj,formulaValue){
      formulaValue(obj)
    }
    
    function b(name){
      console.log(name, Object.keys(name))
    }
    
    a({a:1}, b) // {a: 1}, [a]
    
    1 回复
  • ronger

    抱歉抱歉,我没说清楚,调用 b 函数的时候是会带参数的,如 b(x,y,j),然后在 b 函数内通过 arguments 对象去获取,所以会有这样的问题,或者我可以通过 eval(b(name,x,y,j))的方式去获取到 a 函数内的 name 值

    1 回复
  • Vanessa
    function a(formulaValue, ...obj){
      formulaValue(...obj);
    }
    
    function b(...name){
      name.forEach((item) => { console.log(Object.keys(item)) })
    }
    
    a(b, {a:1}, {b:2}) // ["a"] ["b"]
    
请输入回帖内容 ...