码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript的原型与继承

时间:2016-02-29 19:39:10      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

首先,什么是原型:

JavaScript里所有函数,变量方法都是对象,而对象对应的就是原型(prototype).

所以以此来看,JS里任何的对象都有一个原型对象,而默认的原型对象就处在原型链的最顶端。

现在说到了一个新的概念,什么是原型链?

在JavaScript中,一共有两种类型的值,原始值和对象值.每个对象都有一个内部属性[[prototype]],我们通常称之为原型.原型的值可以是一个对象,也可以是null.如果它的值是一个对象,则这个对象也一定有自己的原型.这样就形成了一条线性的链,我们称之为原型链.

通俗的来说,就是一个对象在创建之后,他实际上是继承它的原型链最顶端的属性的。

那么现在有一个简单的问题,应该如何解答呢?

function a () {

var c =123;

c.prototype = 12;

var b = new c();

return b;

}

上面只是用伪代码的方式,询问了一个问题,那么B的值究竟是什么呢?

答案是:123;

因为根据原型链的定义,JS解释器首先按照原型链,自下而上的查找对象的属性值,那么在最下部查找时,就会发现并返回var c=123这个值。

那么现在变一下,不给对象C赋值,直接获取C的值呢?那么答案就会变成12,因为当解释器找不到赋值时,会自动向上查找,此时它发现C的原型上居然有值12,那么就取出返回给函数。

 

JavaScript的原型与继承

标签:

原文地址:http://www.cnblogs.com/coderushhan/p/5228404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!