JavaScript笔记(1)

昨天,学了一些关于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小菜鸡称号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值