javascript”面向对象编程”- 3 function是方法(函数)
2009-09-16 00:00:00 来源:WEB开发网匿名函数一般可以满足临时的函数需求,不需要有变量对其进行引用(有名的函数可以认为是有变量引用的函数)。比如需要一个函数做为值对象做为参数传入方法、需要编程的方式为对象添加事件,用匿名函数都可以很好的完成。当然你也可以单独声明变量来引用某个匿名函数对象,这和普通有名函数就没什么区别了。
function Each(array, fun) {
for (var i = 0; i < array.length; i++) {
fun(array[i]);
};
};
var nums = [1, 2, 3, 4, 5, 6, 7];
Each(nums, function(arg) {
alert(arg);
});
上面代码执行,依次输出数组中的元素。
//在窗体加载时,在标题上显示当前时间
window.onload = function() {
document.title = new Date().toString();
};
//也可以将匿名方法传入定时器中
setInterval(function() {
document.title = new Date().toString();
}, 1000);
使用匿名函数绑定事件和进行定时操作。
var Hello = function() {
alert("hello , everybody!");
};
如果将匿名函数赋给变量,那和有名的普通函数就没区别了。但不管是变量引用还是普通地有名函数,这样的函数在内存上都持久的占有一定资源。有时候我们只想执行一次大不必使用有引用的函数,直接执行匿名函数可能是最好的选择。把匿名函数包起来,加个括号执行,一切ok,这就是由匿名函数延伸出来的立即执行函数。
(function() {
alert("hello , everybody!");
})();
(function(somebody) {
alert("hello , " + somebody + "!");
})("张三");
立即执行函数在做事件绑定,设置回调函数等方面往往会有意想不到的效果,可以解决诸如对象引用等问题。
var student = {
Name: "张三",
Age: 20,
Introduce: function() {
alert("我叫" + this.Name + ",今年" + this.Age + "岁了!");
} };
window.onload = (function(obj) { return function() { obj.Introduce(); }; })(student);
因为javascript中函数的这些特点加之它的对象的特征,我们还可以写出一些有functional意味的程序出来。其实javascript中function真的是老大。
function Sum(fun, x) {
if (x <= 0)
return 0;
return fun(x) + Sum(fun, x - 1);
};
alert(Sum(function(i) { return i * i; }, 100));
下面这又是什么呢?是方法吗?是类吗?
function Point() {
};
先啰嗦到这,下次再看看类。
编缉推荐阅读以下文章
- javascript”面向对象编程”- 2聊聊对象的事
- javascript”面向对象编程”- 1万物皆对象
- Javascript中的面向对象编程实例
Tags:javascript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接