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高级程序设计——14.面向对象与原型(2)

1、创建原型访问prototype有两种方法 (1)构造函数实例方法创建 构造函数:在对象创建或者实例化时候被调用的方法。通常使用该方法来初始化数据成员和所需资源。 构造器Const...

深入理解javascript原型和闭包(2)——函数和对象的关系

转载自:http://www.cnblogs.com/wangfupeng1988/p/3978035.html 上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到...

【JS】JavaScript中对象的创建与原型模式

JavaScript中对象的创建与原型模式

深入理解javascript原型和闭包(1)——一切都是对象

http://www.cnblogs.com/wangfupeng1988/p/3977987.html “一切都是对象”这句话的重点在于如何去理解“对象”这个概念。 ——当然,也不是...

javascript中原型模式创建对象特点分析

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

JavaScript-形象理解面向对象、原型和继承

这是第二次整体复习JavaScript的面向对象与原型方面的知识。这部分的知识比较抽象但是又十分重要。它对后期类库的封装,整体架构的实现非常重要。在这节我将对每个方式进行形象全面的讲解。

javascript 面向对象(六)原型的特性和作用

1、根据实例对象获得原型对象    Object.getPrototypeOf() function Person(){ } Person.prototype.name = "梁"; ...

深入理解javascript原型和闭包(2)——函数和对象的关系

转载于 : http://www.cnblogs.com/wangfupeng1988/p/3977924.html上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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