`

JS--prototype属性

阅读更多
    在js中,每个对象都有一个prototype属性:返回对象类型原型的引用。很拗口!习语“依葫芦画瓢”,这里的葫芦就是原型,那么“瓢.prototype” 返回的就是葫芦,或者“瓢.prototype= new 葫芦()”。

prototype的用途:

继承
有一个对象--子类:

function 子类() ...{
this.lastname = "Samuel";
}
有一个对象--父类:

function 父类() ...{
this.firstname = "Shen";
}
现在子类是有名无姓,父类是有姓无名,如果子类要有名有姓的话,只要说明--子类的原型是父类--就可以了,即子类继承自父类:

子类.prototype = new 父类();
至此,子类就不再是有名无姓了。

alert(子类.firstname + " " + 子类.lastname);    //Samuel Shen


牵一发而动全身
既然prototype返回的是原型的引用,那么如果改变原型的话,所有继承自该原型的对象都将受到影响。

    function Point(x,y)
    ...{
        this.x = x;
        this.y = y;
    }
    var p1 = new Point(1,2);
    var p2 = new Point(3,4);
    Point.prototype.z = 0; //动态为Point的原型添加了属性
    alert(p1.z);    //0
    alert(p2.z);    //0

分享到:
评论
3 楼 lian819 2014-06-24  
内容清晰易懂, 就是太浅了
2 楼 forrest_lv 2012-03-21  
你解释得通俗易懂
1 楼 阳新小子 2008-11-03  
xiedei bu cuo

相关推荐

    getter-in-value-prototype.rar_prototype

    总结来说,`getter in value prototype`是JavaScript中实现对象属性访问控制的一种方式,它允许我们在不直接暴露数据的情况下提供属性读取。这有助于保护对象的状态,增加代码的安全性和封装性。在进行面向对象编程...

    ember-disable-prototype-extensions-源码.rar

    `ember-disable-prototype-extensions`通常会在这个对象的`EXTEND_PROTOTYPES`属性下找到。 2. **条件编译**:根据`EXTEND_PROTOTYPES`的值,源码可能会包含条件编译的代码块,只有当该选项为true时,才会执行对...

    setter-on-constructor-prototype.rar_The Next

    根据提供的文件名"12.6.3-12.js"和"setter-on-constructor-prototype.js",我们可以推测这是在探讨ECMAScript规范中的某个章节,可能涉及到了对特定结果(Result(3))的属性遍历,并寻找特定条件下的下一个属性。...

    value-callic-prototype-change.rar_Change

    标题中的"Value Callic Prototype Change"指的是在JavaScript编程中,关于对象原型(prototype)和值类型函数(value function)的变化情况。在JavaScript中,对象可以通过原型链共享属性和方法,而值类型(如Number...

    vue-27-prototype.mp4

    JS中所有的东西都是对象,每个对象都有prototype这个属性,这个属性是一个对象(object) 2. JS中所有的东西都由Object衍生而来, 即所有东西原型链的终点指向Object.prototype 3. JS中构造函数和实例(对象)之间有...

    前端开源库-set-prototype-of

    2. `dist/`: 这个目录下通常会有编译后的生产版本,例如`set-prototype-of.min.js`,这是一个压缩和混淆过的版本,适合在实际项目中引入使用。 3. `test/`: 测试用例文件,用于验证库的功能是否正确,通常包含`.spec...

    Glider-JS 基于Prototype的页面滑块效果.zip

    Glider-JS 是一个JavaScript库,它利用Prototype框架来实现页面上的滑块效果。滑块在网页设计中是一种常见的交互元素,通常用于展示图片、内容幻灯片或创建动态导航菜单。Prototype是一个强大的JavaScript库,它提供...

    js遍历属性 以及 js prototype 和继承

    在JavaScript中,遍历属性、理解`prototype`和掌握继承机制是编程中不可或缺的基本技能。本文将深入探讨这些概念,并通过实例来加深理解。 首先,让我们来看如何遍历JavaScript对象的属性。JavaScript提供了多种...

    js-Prototype.rar

    在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`属性或`Object.getPrototypeOf()`方法来访问。这个原型链是由对象之间的链接构成的,允许一个对象可以访问其原型对象的属性和方法,...

    tooltip-js-with-inheritance-prototype:使用原型继承设计模式的css,html,js的简单工具提示

    在JavaScript的世界里,原型继承是实现对象间属性和方法共享的一种机制,它是基于原型(Prototype)的概念来实现的。此项目“tooltip-js-with-inheritance-prototype”旨在展示如何利用原型继承设计模式创建一个简单...

    prototype.js 1.4-1.6[全]

    《Prototype.js 1.4-1.6:JavaScript 动态原型框架的探索与实践》 Prototype.js 是一个广泛使用的JavaScript库,它扩展了JavaScript语言的功能,为开发人员提供了更强大的面向对象编程支持。该库的核心特性是其对...

    lead-pro-prototype

    此外,"lead-pro-prototype" 很可能使用了装饰器,这是一种元编程的工具,可以在不修改原有代码的情况下,向现有对象添加新的行为或属性。装饰器在 Angular 和其他框架中非常常见,用于实现依赖注入、AOP(面向切面...

    site-vcht-prototype

    "site-vcht-prototype"项目概述 在IT领域,尤其是前端开发中,"site-vcht-prototype"可能是一个网站或应用程序的原型项目。这个项目的名称暗示了它是一个用于虚拟客户支持(VCS)或虚拟助手的技术原型。"vcht"可能...

    prototype.js简介

    **描述:** prototype.js 是一个JavaScript库,主要目的是为了简化JavaScript的开发,提升开发效率。它通过扩展JavaScript的基本对象和类型,提供了丰富的功能,包括类式继承、面向对象编程的支持以及一些实用的DOM...

    Lo-Fi_Prototype_wexc

    CSS可以定义颜色、字体、尺寸、位置等视觉属性,并使用布局技术如Flexbox或Grid进行复杂布局的管理。 此外,如果项目中包含了JavaScript,那么这个原型可能包含了一些交互功能,比如表单验证、按钮点击事件、页面...

    prototype-1.4.0源码解读.js

    《Prototype 1.4.0 源码解读:深入理解JavaScript库的基石》 Prototype 是一个著名的JavaScript库,它的1.4.0版本在Web开发领域有着广泛的使用。这个库为JavaScript程序员提供了许多实用的功能,包括对象扩展、类...

    js框架prototype-1.6.0.3.js

    总的来说,Prototype 1.6.0.3.js是一个强大而全面的JavaScript框架,它通过丰富的API和特性,提升了JavaScript开发的效率和代码质量。无论是处理DOM、实现AJAX通信还是创建复杂的动画效果,Prototype都能提供强大的...

    prototype.js javaScript插件

    - **扩展JavaScript对象**:Prototype.js提供了一系列方法,如`extend`和`merge`,用于方便地合并和扩展对象属性,使得代码更加简洁和可维护。 - **DOM操作**:Prototype.js封装了对DOM元素的操作,比如`Element`类...

    data-module-pattern-prototype:一个尝试使用data- *属性将原始HTML与Javascript绑定以创建动态行为的小项目

    任何元素都可以具有“数据模块”属性,该属性告知该元素将使用哪个模块,这是一个简单JavaScript函数,可以接受该元素并使用JavaScript添加自定义行为。 模块不过是遵循此描述的功能: export default function ...

    JS-ED_1.9

    2. **对象与原型链**:JavaScript中的对象是属性和方法的集合,通过原型链实现继承。理解`__proto__`、`prototype`以及`Object.create()`是掌握JavaScript面向对象编程的关键。 3. **DOM操作**:JavaScript可以与...

Global site tag (gtag.js) - Google Analytics