gpt4 book ai didi

javascript - JQuery\Javascript - 将函数作为变量传递

转载 作者:行者123 更新时间:2023-11-30 09:08:29 26 4
gpt4 key购买 nike

我只是好奇我是否可以将函数作为变量传递。例如:我有一个功能

$('#validate').makeFloat({x:671,y:70,limitY:700});

我想做这样的事情:

$('#validate').makeFloat({x:function(){ return $("#tabs").offset().left+$("#tabs").width();},y:70,limitY:700});

这行不通,但理想情况下每次访问变量时它都会计算新值。因此,如果调整窗口大小,它会自动调整,而不是静态传递的变量。我意识到我可以直接在函数\小部件中实现它,但我想知道是否有某种方法可以执行上述操作。

这个概念是独立于插件的。我说的是将函数“强制转换”为变量。

最佳答案

是的,您可以传递一个对象,该对象将在读取其属性时调用某些函数(这称为 getter),但它不跨浏览器兼容。例如,这将(可能)在 IE9 中工作:

var o = {y:70, limitY:700};
Object.defineProperty(o, 'x', {get: function() {return 671;}});
$('#validate').makeFloat(o);

对于其他浏览器还有其他语法,例如 Firefox 的 __defineGetter__,有些浏览器根本没有这个功能。因此,除非您可以完全控制代码运行的环境,否则它几乎没有用。

关于javascript - JQuery\Javascript - 将函数作为变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2716773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com