JavaScript中原型和原型链详解中原型和原型链详解
主要介绍了JavaScript中原型和原型链详解,本文讲解了私有变量和函数、静态变量和函数、实例变量和函数、
原型和原型链的基本概念,需要的朋友可以参考下
javascript中的每个对象都有一个内置的属性prototype,Javascript中对象的prototype属性的解释是:返回对象类型原型的引
用。意思是是prototype属性保存着对另一个JavaScript对象的引用,这个对象作为当前对象的父对象。
复制代码 代码如下:
A.prototype = new B();
理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。A能使用
B的方法和属性。这里强调的是克隆而不是继承。可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实
例。
继续看下面的分析:
私有变量和函数私有变量和函数
在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数的私有的变量和函数。
复制代码 代码如下:
<script type="text/javascript">
function Box(){
var color = "blue";//私有变量
var fn = function() //私有函数
{
}
}
</script>
这样在函数对象Box外部无法访问变量color和fn,他们就变成私有的了:
复制代码 代码如下:
var obj = new Box();
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>
实例变量和函数实例变量和函数
在面向对象编程中除了一些库函数我们还是希望在对象定义的时候同时定义一些属性和方法,实例化后可以访问,js也能做到
这样