gpt4 book ai didi

javascript - 传递 javascript 对象以 jquery 方式运行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:07:32 26 4
gpt4 key购买 nike

是的,所以我一直在研究 javascript 一段时间,但直到最近才开始研究面向对象、原型(prototype)设计以及为所有函数和变量使用对象。

但是,很多框架如 jQuery 或 extJS 有一些我还没有掌握的东西,你可以通过使用内置函数来定义一个对象来搜索 dom,例如:

var a = $('#mydiv');

然后你可以做 a.click(function);

所以我的问题是,我怎样才能创建一个可以用那种风格编写代码的“框架”,例如:

var mydiv = document.querySelector('mydiv');
mydiv.neph(args,args);

所以我定义了我的对象,在本例中它是一个 dom 元素或其他元素,现在我将它传递给带有参数的函数“neph”,我想创建允许我执行此操作的代码。但是由于 mydiv 没有任何功能,在这种情况下它只有 dom 元素,所以 mydiv.neph 不存在,但是在 jquery 中你可以定义任何 var 和 .click 或 .mouseover 或对象中存在的任何东西作为函数?困惑随之而来! :D

好的,如果这是一个弱智的问题 btw =P

最佳答案

jQuery 和其他库定义了一个名为$ 的函数,它接受多个可选参数。调用 $ 返回的对象不是 DOM 元素,而是一个用一组方便的函数包装 DOM 元素的 jQuery 对象。

您可以自己做类似的事情:

<html>
<body>
<input id="derp" type="text"/>
<script type="text/javascript">

function $(id)
{
return new myLibrary(id);
};

function myLibrary(id)
{
this.el = document.getElementById(id);
};

myLibrary.prototype.help = function()
{
alert(this.el.id);
return this;
};

// Woah! My own fake jquery!
$("derp").help();
</script>

</body>
</html>

当然,jQuery 要复杂得多。例如,它将使用 apply and calljQuery.each 这样的调用中正确设置 this

关于javascript - 传递 javascript 对象以 jquery 方式运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104957/

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