javascript 原型对象

原创 2016年08月30日 17:37:07

在JS中,无论什么时候,只要创建一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向了函数的原型对象。

在默认情况下,所有原型对象都会获得一个constructor(构造函数)属性,这个属性包含一个指向prototype属性所在函数的指针。而可以通过这个构造函数,可以继续为原型对象添加其他的属性和方法。

当访问对象的时候,会先判断当前对象是否存在需要搜索的内容,如果不存在,则会搜索其原型对象中的属性。

如果要枚举原型对象的属性。可以用Object.keys()方法。
代码例子:
function Person(){}
Person.prototype.name = "Nicholas";
Person.prototype.age  = 29;
Person.prototype.job  = "Software Engineer";
Person.prototype.sayName = function(){
    alert(this.name);
};
var keys= Object.keys(Person.prototype);
alert(keys);
var p1 = new Person();
p1.name = "Rob";
p1.age  = 31;
var p1Keys= Object.keys(p1);
alert(p1Keys);

原生对象中,不但包括自定义的原生类型,而且还包括原生引用类型(Object、Array、String等等),这些类型都在构造函数的原型上定义了自己的方法。
通过原生对象的类型,不仅可以取得默认方法的引用,而且还可以给原生对象定义新方法,随时添加方法。

代码例子:
String.prototype.startsWith = function (text){
    return this.indexOf(text) == 0;
}
var msg ="Hello world";
alert(msg.startsWith("Hello"));     //true;

版权声明:本文为原创文章,未经博主允许不得转载,欢迎各种交流,共同进步。

从零开始学_JavaScript_系列(40)——对象的扩展(3)当枚举、原型链遇见对属性的操作

0、一句话总结 属性名,以及是属性的函数的简洁写法,写起来简单易阅读属性名可以用变量字符串拼接起来(话说以前也有吧?)函数都有name属性,但set和get也要加前缀Object.is判断两个变...

JavaScript创建对象 —— 原型模式

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象我们叫它原型对象。而这个原型对象的用途是包含可以由特定类型的所有实例共享的属性和方法。它所包含的属性...

JavaScript专精系列(2)——对象、构造、原型、继承

1、引言 最近,研究了一下JavaScript 关于对象的部分。有些东西刷新了我对 Js 的认知,就比如下面的几个问题: 1、如何删除一个对象的属性?所有对象的属性都是可以删除的吗? 2、for...

深入理解JavaScript的原型对象

JavaScript的继承机制是基于原型,而不是类。因此要理解JavaScript的继承机制,包括基于ES5的框架模型(例如Backbone)的继承机制,需要更深入了解原型对象。...

javascript学习实录 之三(对象原型引用prototype) --刘小小尘

这一次 讲一下,对象的原型引用prototype 对于对象,有一个属性 : prototype 属性 先看一下API中讲解的 返回对象类型原型的引用。 objectName.prototype...

javascript 原型方法,对象方法,类方法;私有属性,公有属性,公有静态属性

1.概要1、对象方法理解就很简单了,主要是如果类生成一个实例,那么该实例就能使用该方法2、类方法,不需要通过生成实例就可以使用的方法3、原型方法主要是用来对JS已有的系统对象进行扩展而生的,例如Arr...

深入探讨javascript中对象,原型(__proto__),与prototype的关系

最近在学习node.js,学习过程中遇到很多坑,总结下来是对核心javascript(新手童鞋别误解,这里说的不是客户端javascript哦。两者有相似性,侧重点不同)的相关知识认识相对浅薄导致,所...

【Javascript基础篇】—--原型对象(prototype)的三个常用方法

每一个函数都有自己的prototype属性,而该属性所存储的是原型对象。在上一篇中我们讲解了通过原型对象动态添加属性,结果我们介绍原型对象的三个常用方法。 hasOwnProperty():判断一个属...

JavaScript面向对象(二)--前端必须知道的原型和继承

原型是JS语言的难点,此文主要讲原型及原型实现的继承,希望对大家有所帮助。一、原型(prototyle) 是用来定义公共特征、行为,表现为对象的属性/函数。目的是为了提高代码的复用、降低代码的耦合并...

Javascript面向对象(五)——内置原型

内置原型 “prototype”属性在javascript内核中也应用广泛,所有的内置构造函数都用。我们首先看看简单的对象如何使用,然后进一步说明复杂对象。 Object.prototype我们看...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript 原型对象
举报原因:
原因补充:

(最多只允许输入30个字)