在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
分享到:
相关推荐
总结来说,`getter in value prototype`是JavaScript中实现对象属性访问控制的一种方式,它允许我们在不直接暴露数据的情况下提供属性读取。这有助于保护对象的状态,增加代码的安全性和封装性。在进行面向对象编程...
`ember-disable-prototype-extensions`通常会在这个对象的`EXTEND_PROTOTYPES`属性下找到。 2. **条件编译**:根据`EXTEND_PROTOTYPES`的值,源码可能会包含条件编译的代码块,只有当该选项为true时,才会执行对...
根据提供的文件名"12.6.3-12.js"和"setter-on-constructor-prototype.js",我们可以推测这是在探讨ECMAScript规范中的某个章节,可能涉及到了对特定结果(Result(3))的属性遍历,并寻找特定条件下的下一个属性。...
标题中的"Value Callic Prototype Change"指的是在JavaScript编程中,关于对象原型(prototype)和值类型函数(value function)的变化情况。在JavaScript中,对象可以通过原型链共享属性和方法,而值类型(如Number...
JS中所有的东西都是对象,每个对象都有prototype这个属性,这个属性是一个对象(object) 2. JS中所有的东西都由Object衍生而来, 即所有东西原型链的终点指向Object.prototype 3. JS中构造函数和实例(对象)之间有...
2. `dist/`: 这个目录下通常会有编译后的生产版本,例如`set-prototype-of.min.js`,这是一个压缩和混淆过的版本,适合在实际项目中引入使用。 3. `test/`: 测试用例文件,用于验证库的功能是否正确,通常包含`.spec...
Glider-JS 是一个JavaScript库,它利用Prototype框架来实现页面上的滑块效果。滑块在网页设计中是一种常见的交互元素,通常用于展示图片、内容幻灯片或创建动态导航菜单。Prototype是一个强大的JavaScript库,它提供...
在JavaScript中,遍历属性、理解`prototype`和掌握继承机制是编程中不可或缺的基本技能。本文将深入探讨这些概念,并通过实例来加深理解。 首先,让我们来看如何遍历JavaScript对象的属性。JavaScript提供了多种...
在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`属性或`Object.getPrototypeOf()`方法来访问。这个原型链是由对象之间的链接构成的,允许一个对象可以访问其原型对象的属性和方法,...
在JavaScript的世界里,原型继承是实现对象间属性和方法共享的一种机制,它是基于原型(Prototype)的概念来实现的。此项目“tooltip-js-with-inheritance-prototype”旨在展示如何利用原型继承设计模式创建一个简单...
《Prototype.js 1.4-1.6:JavaScript 动态原型框架的探索与实践》 Prototype.js 是一个广泛使用的JavaScript库,它扩展了JavaScript语言的功能,为开发人员提供了更强大的面向对象编程支持。该库的核心特性是其对...
此外,"lead-pro-prototype" 很可能使用了装饰器,这是一种元编程的工具,可以在不修改原有代码的情况下,向现有对象添加新的行为或属性。装饰器在 Angular 和其他框架中非常常见,用于实现依赖注入、AOP(面向切面...
"site-vcht-prototype"项目概述 在IT领域,尤其是前端开发中,"site-vcht-prototype"可能是一个网站或应用程序的原型项目。这个项目的名称暗示了它是一个用于虚拟客户支持(VCS)或虚拟助手的技术原型。"vcht"可能...
**描述:** prototype.js 是一个JavaScript库,主要目的是为了简化JavaScript的开发,提升开发效率。它通过扩展JavaScript的基本对象和类型,提供了丰富的功能,包括类式继承、面向对象编程的支持以及一些实用的DOM...
CSS可以定义颜色、字体、尺寸、位置等视觉属性,并使用布局技术如Flexbox或Grid进行复杂布局的管理。 此外,如果项目中包含了JavaScript,那么这个原型可能包含了一些交互功能,比如表单验证、按钮点击事件、页面...
《Prototype 1.4.0 源码解读:深入理解JavaScript库的基石》 Prototype 是一个著名的JavaScript库,它的1.4.0版本在Web开发领域有着广泛的使用。这个库为JavaScript程序员提供了许多实用的功能,包括对象扩展、类...
总的来说,Prototype 1.6.0.3.js是一个强大而全面的JavaScript框架,它通过丰富的API和特性,提升了JavaScript开发的效率和代码质量。无论是处理DOM、实现AJAX通信还是创建复杂的动画效果,Prototype都能提供强大的...
- **扩展JavaScript对象**:Prototype.js提供了一系列方法,如`extend`和`merge`,用于方便地合并和扩展对象属性,使得代码更加简洁和可维护。 - **DOM操作**:Prototype.js封装了对DOM元素的操作,比如`Element`类...
任何元素都可以具有“数据模块”属性,该属性告知该元素将使用哪个模块,这是一个简单JavaScript函数,可以接受该元素并使用JavaScript添加自定义行为。 模块不过是遵循此描述的功能: export default function ...
2. **对象与原型链**:JavaScript中的对象是属性和方法的集合,通过原型链实现继承。理解`__proto__`、`prototype`以及`Object.create()`是掌握JavaScript面向对象编程的关键。 3. **DOM操作**:JavaScript可以与...