龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

javascript学习笔记(五)原型和原型链详解

时间:2014-10-13 15:04来源:网络整理 作者:网络 点击:
分享到:
许多人对JavaScript的原型及原型链仍感到困惑,网上的文章又大多长篇大论,令读者不明觉厉。我将用最简洁明了的文字介绍JavaScript的原型及原型链。

私有变量和函数

在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数的私有的变量和函数。

复制代码 代码如下:

<script type="text/javascript">
    function Test(){
        var color = "blue";//私有变量
        var fn = function() //私有函数
        {

        }
    }
</script>

这样在函数对象Test外部无法访问变量color和fn,他们就变成私有的了:

复制代码 代码如下:

var obj = new Test();
    alert(obj.color);//弹出 undefined
    alert(obj.fn);//同上

静态变量和函数

当定义一个函数后通过点号 “.”为其添加的属性和函数,通过对象本身仍然可以访问得到,但是其实例却访问不到,这样的变量和函数分别被称为静态变量和静态函数。

复制代码 代码如下:

<script type="text/javascript">
    function Obj(){

    }
    Obj.num = 72;//静态变量
    Obj.fn = function()  //静态函数
    {

    } 

    alert(Obj.num);//72
    alert(typeof Obj.fn)//function

    var t = new Obj();
    alert(t.name);//undefined
    alert(typeof t.fn);//undefined
</script>

实例变量和函数

在面向对象编程中除了一些库函数我们还是希望在对象定义的时候同时定义一些属性和方法,实例化后可以访问,JavaScript也能做到这样

复制代码 代码如下:

<script type="text/javascript">
    function Obj(){
                this.a=[]; //实例变量
                this.fn=function(){ //实例方法

                }
            }

            console.log(typeof Obj.a); //undefined
            console.log(typeof Obj.fn); //undefined

            var o=new Obj();
            console.log(typeof o.a); //object
            console.log(typeof o.fn); //function
</script>

为实例变量和方法添加新的方法和属性

复制代码 代码如下:

<script type="text/javascript">
function Obj(){
                this.a=[]; //实例变量
                this.fn=function(){ //实例方法

                }
            }

            var o1=new Obj();
            o1.a.push(1);
            o1.fn={};
            console.log(o1.a); //[1]
            console.log(typeof o1.fn); //object

精彩图集

赞助商链接