1.大家在实际工作中,会写各式各样的赋值语句。
比如最常用的obj.style.display = "none";
如果这样的赋值语句一多,obj.style一排下来都要看晕了
下面我的base.js中的extend函数可以允许用json格式赋值属性甚至是函数句柄
/**
* 扩展函数
* @param target 需要扩展的对象
* @param params 要往target里放的属性和方法
*/
function extend(target, params) {
if (!target) {
target = {};
}
for (var prop in params) {
target[prop] = params[prop];
}
return target;
}
2. 由于ie不完全遵守w3c标准,他的事件模型和别的浏览器不一样。调用的方法也不一样。
如果遇到要为控件动态增加事件。用onclick = function() {}一类的在dom动态创建的时候不一定有效,而且无法绑定多个句柄。下面介绍一个通用的支持全浏览器的绑定事件函数。
在大部分情况下,useCapture用的是false,所以这里干脆写死。
/**
* 动态创建事件句柄
* @param control 需要扩展的对象
* @param eventName 事件名
* @param fn 函数句柄
*/
addEventListener = function() {
if (window.attachEvent) {
return function(control, eventName, fn) {
// 解决this为window对象的问题
control.attachEvent('on' + eventName, function(e) {fn.call(control, e);});
};
} else if (window.addEventListener) {
return function(control, eventName, fn) {
control.addEventListener(eventName, fn, false);
};
} else {
return function(control, eventName, fn) {
control['on' + eventName] = fn;
};
}
}();
以上两个函数的使用Sample可以参照我写的其他的文章中的代码
分享到:
相关推荐
本指南将深入探讨JavaScript的高效编程和函数式编程这两个重要主题,帮助开发者提升技能,实现更优雅、更可维护的代码。 《Effective JavaScript(中文版).pdf》这本书是JavaScript编程的经典之作,它包含了68个具体...
在这个名为"js_utils-master"的压缩包中,我们可以期待找到一系列封装好的JavaScript工具函数,它们涵盖了URL参数处理、数字与字符串操作以及日期相关的功能。 首先,让我们深入探讨URL参数处理。在Web开发中,我们...
在JavaScript的日常开发中,我们经常会遇到需要...这两个工具函数对于提升JavaScript代码的复用性和易用性是非常有帮助的。在实际开发中,这样的工具函数应该被广泛使用,尤其是在那些需要频繁处理DOM和事件的场景中。
例如,如果我们有两个函数`f`和`g`,我们可以创建一个新的函数`h = f(g)`,使得`h(x)`等同于`f(g(x))`。 另外,JavaScript提供了`Array.prototype`和`Object.prototype`上的函数,如`Array.of`, `Array.from`, `...
2. Lodash:提供了大量实用的工具函数,如`_.map()`, `_.filter()`, `_.reduce()`,便于数据处理和对象操作。 3. Underscore.js:与Lodash类似,提供了一套实用的函数集合,帮助开发者编写更简洁的代码。 4. ...
5. 函数组合(Composition):函数组合是将两个或多个函数串联起来,形成一个新的函数,新函数的输出是原始函数的连续调用的结果。在JavaScript中,这通常通过点号操作符或compose函数来实现。 6. 闭包:JavaScript中...
函数组合是将两个或更多函数串联起来,形成一个新的函数。这种方式可以使代码更加模块化,每个函数只关注一个特定任务,而整个流程由组合函数定义。 五、柯里化 柯里化是将接受多个参数的函数转换为一系列接受单个...
这里的“一个对象发序列化的工具函数”是指一个JavaScript开发中的实用工具,它能够将JavaScript对象转换为可传输或存储的格式,例如JSON字符串,然后在需要时将其还原回原来的对象形式。这种功能对于网络应用、数据...
4. **函数组合(Composition)**:通过将两个或更多函数串联起来形成一个新的函数,如Underscore的`_.compose`函数。 5. **函数式数据结构**:使用不可变数据结构(如Underscore的`_.clone`和`_.extend`)可以避免副...
`JavaScript参考手册.chm` 是一个帮助文件,包含JavaScript的所有函数和对象的详细信息。CHM(Compiled HTML Help)是一种Microsoft提供的帮助文件格式,将HTML页面编译成单一文件,方便用户离线查阅。这个文件可以...
- `isEqual`:比较两个值是否相等,考虑了复杂数据类型的比较。 xe-utils库以其丰富的功能和高效的性能,为开发者提供了极大的便利。通过深入理解和熟练运用这些工具函数,可以极大地提高JavaScript编程效率,降低...
- Boolean:只有两个值,true和false。 引用数据类型主要包括: - Object:可以包含多个属性和方法的对象。 - Function:函数也是一种对象,可以被赋值给变量,作为参数传递,或者作为其他对象的属性。 在处理引用...
5. **函数组合**:函数组合是将两个或多个函数串联起来,形成一个新的函数,新函数的输出是原始函数的连续输入。在JavaScript中,我们可以使用`.`操作符或`Function.prototype.compose()`方法实现函数组合。 6. **...
在JavaScript中,函数有两种主要声明方式:函数声明和函数表达式。函数声明如`function add(a, b) { return a + b; }`,而函数表达式如`var add = function(a, b) { return a + b; };`。两者的主要区别在于作用域和...
JavaScript 和 Ruby 都是编程语言,虽然它们...在实际工作中,理解并熟练使用这些工具函数,将使你的代码更加简洁、高效。通过不断学习和实践,你将能够更好地驾驭JavaScript,从而成为一名出色的前端或全栈开发者。
addEventListener方法接受两个参数:一个是事件类型,另一个是当事件发生时要调用的回调函数。 最后,文档还隐含地展示了JavaScript中函数的灵活用法,比如函数可以作为对象存在,对象的属性可以是函数等。这种用法...
- `substring()`:提取字符串中两个指定的索引号之间的字符。 - `replace()`:在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 3. **类型转换** - `toString()`:将值转换为字符串。 ...
4. **apply/call调用模式**:这两个方法允许我们改变函数的上下文(`this` 的值)和传入参数。`func.apply(context, argsArray)` 和 `func.call(context, arg1, arg2, ...)`, 其中 `context` 是 `this` 的值,`...