gpt4 book ai didi

javascript - jquery 中的 MooTools Hash/Object.each 等价物

转载 作者:行者123 更新时间:2023-11-30 18:43:22 25 4
gpt4 key购买 nike


在我的项目中,我需要将一个大脚本(表单验证插件)从 mootools 转换为 Jquery。它有oops概念。我搜索了很多,发现 HJS 面向对象的 Jquery 插件并合并,但在以下方面有问题......

initialize : function (form, options){
if (this.form = $(form)) {
this.form.isValid = true;
this.regex = ['length'];
this.alertMsg = [];
this.validations = [];
var regex = new Hash(this.options.regexp);
regex.each(function(el, key) {
this.regex.push(key);
}, this);
var alertMsg = new Hash(this.options.alerts);
alertMsg.each(function(el, key) {
this.alertMsg.push(key);
}, this);
$(form).find("*[class*=validate]").each(function(el) {
this.register(el);
}, this);
}
},
......

this.register(el) 函数没有触发.....

Jquery 中的“new Hash()”等价物是什么?如何替换 jquery 中的 function(el)?

请帮助我...

谢谢,
Mercurial

最佳答案

mootools 中的 Hash type 基本上是一个原型(prototype)化的对象克隆 type,它可以安全地获取像 .each.some 这样的方法 等 - http://mootools.net/docs/more/Types/Hash

最终,您正在使用 javascript,您可以使用 for var in object 表达式在 javascript 中遍历对象:

var object = {
foo: "bar",
bar: "foo"
};

for (var key in object) {
alert(key);
alert(object[key]);
}

需要考虑的事情:检查 hasOwnProperty 或在对象上设置 __proto__: null 以避免出现如下问题:

Object.prototype.hello = "world";
var object = {
foo: "bar",
bar: "foo"
};

for (var key in object) {
alert(key); // foo, bar, hello
alert(object[key]);
}

相反,做:

var object = {
__proto__: null,
foo: "bar"
};

如果可用,这也可以用作 new Object(null)

是的,对对象进行原型(prototype)设计并不是一种安全的做法——因此 mootools 是在 Hash 而不是实际的 Object 类型中进行的。哈希现在已弃用,取而代之的是 Object - http://mootools.net/docs/core/Types/Object

关于javascript - jquery 中的 MooTools Hash/Object.each 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6199526/

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