JavaScript笔记(1)
来源:互联网 发布:淘宝赚佣金的软件 编辑:程序博客网 时间:2024/05/22 20:28
昨天,学了一些关于JS的东西,现在就来谈谈我的感想以及收获。
1.JS的特性
一看到JS的全名javascript,我就不由自主的把它与之前学过的一门语言Java作比较,但事实证明,他俩除了名字上都有java,其他地方根本一点相似之处都没有,
javascript是一个脚本语言,没有自己的环境,而java是一门编程语言,有自己的编译环境,javascript嵌入在html语言中,为它增加了互动和交互。
2.JS的面向对象
这些天看的主要内容全在这,上文也说过,java和js除了名字相似其他并没有什么相似之处,面向对象时也是如此:
(1)封装
Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程语言,因为它的语法中没有class;所以利用了function代替class(我是这么认为的),下面看一段代码:
function x(name) { var name = "you"; this._name=name; } x.prototype.say=function () { document.write("I've got "+this._name+" in my sight</br>"); } var p=new x(); p.say();
这是js中最简单的一种封装,一目了然,只要利用function创建一个类(暂且说类)再利用prototype为其赋上相应的方法,之后只要实例化对象即可使用。但其缺点也很明显:无法保证内部成员的安全性,任何在此js文件中的代码皆可访问到该函数本应该是私有的成员,于是,就有了下面这段代码:
(function(){ //这里类似于java中的private var name = "you"; function x(name) { this._name=name;}x.prototype.say=function () { document.write("I've got "+this._name+" in my sight</br>");}window.x=x; //创建一个对外的接口}());
这样由于name是匿名函数的成员,于是它便成为了不可访问元素,这样通过外加一个匿名函数的形式很好的保证了数据的安全性。
3.JS中的继承
先来看一段代码
(function () { function y(name) { this._name=name; } y.prototype=new x(); //这里继承 var supersay=y.prototype.say; y.prototype.say=function () { supersay.call(this); document.write("No "+this._name+" can hide from my sight</br>"); } window.y=y;}());
类y通过prototype说明了y是由x继承而来的,是x的子类,但同时,y也可以通过call(this)函数调用父类的方法。
//经验值+10 获得JS小菜鸡称号
0 0
- [笔记]JavaScript学习笔记(1)
- JavaScript学习笔记1
- JavaScript 学习笔记 1
- JavaScript学习笔记(1)
- JavaScript学习笔记(1)
- JavaScript学习笔记1
- JavaScript笔记(1)
- JavaScript学习笔记1
- Javascript 学习笔记1
- javaScript学习笔记(1)
- javascript学习笔记1
- JavaScript学习笔记1
- javascript学习笔记1
- javascript笔记1
- JavaScript学习笔记1
- javascript学习笔记---1
- JavaScript学习笔记(1)
- JAVASCRIPT学习笔记(1)
- VIM快捷(六):恢复、撤销
- Hadoop的序列化类型介绍
- 计算机图形学01——坐标系
- mybatis3--5.映射配置文件
- VS2010环境下 用MySQL Connector C 连接 MySql数据库
- JavaScript笔记(1)
- 做好正确的选择,明确奋斗的目标
- 自定义带头部和尾部的RecyclerView
- 递归函数解析
- MySql面试前必须练习到熟练的
- P1529 回家 Bessie Come Home(字符串+flored)+特判
- springmvc 和 cxf整合
- linux内核系列(2)——linux内核链表
- sass编译过程中出现编码错误的问题