javascript学习感触

简介: 从开始接触javascript到现在也有2个星期了吧,有很多感触,在这里分享些许。 javascript虽然是面向对象的,但是在我前面的几篇“混乱中”,我也已经谈了自己的想法,我开始甚至抵触过这个语言,为什么这个语言也居然宣称自己是面向对象的呢?学习一个新的东西开始的时候都是很痛苦的,尤其是已经存在的一些概念或认识跟这个要学的东西向抵触的时候?有放弃的冲动和想法。
从开始接触javascript到现在也有2个星期了吧,有很多感触,在这里分享些许。
javascript虽然是面向对象的,但是在我前面的几篇“混乱中”,我也已经谈了自己的想法,我开始甚至抵触过这个语言,为什么这个语言也居然宣称自己是面向对象的呢?学习一个新的东西开始的时候都是很痛苦的,尤其是已经存在的一些概念或认识跟这个要学的东西向抵触的时候?有放弃的冲动和想法。
我是一个不轻易放弃的人,即便是暂时接受不了,可能会放下一段时间,然后重新开始,也许这是我这些年一直惯用的方式,反复学习,断断续续的坚持,享受过程的折磨,每一次都希望比上一次进步一点,直到爱上他为止。
爱上这个词我说的有点过了,折磨这个词,是我从“老鹰重生”这个寓言故事中摘出来的,我很喜欢这个预言故事,寓言故事往往是鼓舞人心的,给人力量的。但是这则预言,很真实,尤其是在这个社会中,要得到自己想要的东西,和学到自己喜欢的东西那要付出代价,经历一番痛苦。过程的艰辛会让人记得更牢,更牢。
要没做,要么不做,这是我对自己的承诺,尽最大努力做好。
javavascript中的匿名函数,原型,闭包,我觉得是非常重要的东西,如果将这些掌握了,那么javascript的主要内容已经没有问题了,然后就是CSS的内容了。
每一门学科或者技术或者其他区别于其他的第一点就是有自己的专业术语,专有的领域(现在很多都是综合性)还有就是解决问题的方法.
对于专业术语,先认真学习,然后用自己的话去解释,所谓先认识,后解释,然后应用,应用的过程就是用它自己的一些方法在它的一些领域中解决一些问题。
在网络盛行的今天,搜索引擎发挥了很大的作用,让每个人都能快速的获取知识和解决问题,如何快速的获取以及如何快速的解决问题,这对一个人来说应该是一种新的能力,而我一直在思考。
我总是这么的罗嗦,现在言归正传,说下我刚才提到的那几个吧。 
匿名函数
匿名函数就是一个没有具体名字的函数,还是通过例子去看吧。
在javascript中我们一般用下面的方式声明函数:
1,function double(x) { return 2 * x; }
2,var double = new Function('x', 'return 2 * x;');
3,var double = function(x) { return 2* x; }

 





从这三种方式可以看出,都有一个名称可以定位该函数,而匿名函数的声明跟这个是有区别的,如下:
(function(x, y){ alert(x + y); })(2, 3);
 
匿名函数可以最为自执行函数和回调函数中(如果用过JQuery和其他框架,可以看到很多)

闭包

闭包是一个陌生的概念,用我自己的话就是在一个函数中又定义一个函数,并且将这个函数变量或者名称返回(当然也可以不返回,通过this指定),返回后原来的函数所占的资源并不释放,可以说是激活状态,比较拗口,看下面的例子:
function f1(){ 
    var n=999;
function f2()
{     
  alert(n);  
}   
 return f2;  
 }  
 var result=f1();  
result(); // 999

 

 
从这个函数就可以看到,在f1中,我们又定义了一个f2,然后将f2返回,返回后仍然可以访问定义在f1中的变量n,这也是闭包的一个作用,访问内部参数,如果里面对这个变量做了变化,那么访问的是这个变量的最终值。 

function buildList(list) { var result = []; for (var i = 0; i < list.length; i++) { var item = 'item' + list[i]; result.push(function () { alert(item + ' ' + list[i]) }); } return result; } function testList() { var fnlist = buildList([1, 2, 3]); for (var j = 0; j < fnlist.length; j++) { fnlist[j](); } } testList();
 上面的这个就是闭包的一个用法,当调用fnlist[j]()的时候弹出的都是item undefined,原因就是i在返回后已经变成了3,而list[3]是不存在的。 
原型

原型其本质是一个对象,普通的实例对象没有本质上的区别。可以包含特定类型的所有实例的共享属性或者方法,每个JavaScript函数都有prototype属性,这个属性引用了一个对象,这个对象就是原型对象。原型对象初始化的时候是空的,我们可以在里面自定义任何属性和方法,这些方法和属性都将被该构造函数所创建的对象继承。
下面的例子很直观的说明了这点。
function User(name,age){//构造方法 this.name = name;//对象属性 this.age = age;} User.prototype.addr = '湖北武汉';//在原型中添加属性 User.prototype.show = function(){//在原型中添加方法 alert(this.name+'|'+this.age); };var user1 = new User('ZXC',22);//创建实例 var user2 = new User('CXZ',21);user1.show();//调用show()方法user2.show(); alert(user1.show == user2.show);//返回 true 说明show方法是共享的alert(user1.addr);//'湖北武汉' alert(user2.addr);//'湖北武汉' 
 通过原型,我们可以动态的扩展一个对象的功能,很多框架的功能,不知道是不是通过这种方式来呢?
这些资料很多都是来自网上,感谢分享的人,同时将这些地址分享如下:
http://bonsaiden.github.com/JavaScript-Garden/
http://www.cnblogs.com/jsk540/archive/2010/10/26/1861630.html
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568137.html
http://www.cnblogs.com/chaofan/archive/2009/12/29/1635133.html
http://kb.cnblogs.com/page/144404/
http://blog.csdn.net/helloworl/article/details/7883507
http://www.cnblogs.com/rainman/archive/2009/05/04/1448899.html#m1
相关文章
|
4月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
4月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
5月前
|
JavaScript 数据可视化 前端开发
three.js简单实现一个3D三角函数学习理解
1.Three.js简介 Three.js是一个基于JavaScript编写的开源3D图形库,利用WebGL技术在网页上渲染3D图形。它提供了许多高级功能,如几何体、纹理、光照、阴影等,以便开发者能够快速地创建复杂且逼真的3D场景。同时,Three.js还具有很好的跨平台和跨浏览器兼容性,让用户无需安装任何插件就可以在现代浏览器上观看3D内容。
182 0
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
232 2
|
12月前
|
JavaScript
js学习--制作猜数字
js学习--制作猜数字
108 4
js学习--制作猜数字
|
11月前
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
204 5
|
12月前
|
JavaScript
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
186 1
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
|
11月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
92 2
|
11月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
135 1

热门文章

最新文章