`

Javascript 原型属性和原型方法

 
阅读更多
在编写构造函数时,可以使用原型对象(它本身是所有构造函数的一个属性)的属性来创建继承属性和共享方法。原型属性和方法将按引用复制给类中的每个对象,因此它们都具有相同的值。可以在一个对象中更改原型属性的值,新的值将覆盖默认值,但仅在该实例中有效。属于这个类的其他对象不受此更改的影响。下面给出了使用自定义构造函数的示例,Circle(注意 this 关键字的使用)。

function Circle (xPoint, yPoint, radius) {  //编写构造函数
    this.x = xPoint;  // 圆心的 x 坐标。
    this.y = yPoint;  // 圆心的 y 坐标。
    this.r = radius;  // 圆的半径。
}

Circle.prototype.pi = Math.PI;  //原型属性

function ACirclesArea () {
    return this.pi * this.r * this.r; // 计算圆面积的公式
}
Circle.prototype.area = ACirclesArea; // 给Circle对象赋原型方法。

var aCircle = new Circle(5, 11, 99);
var a = aCircle.area();  


使用这个原则,可以给预定义的构造函数(都具有原型对象)定义附加属性。例如,如果想要能够删除字符串的前后空格(与 VBScript 的 Trim 函数类似),就可以给 String 原型对象创建自己的方法。

// 增加一个名为 trim 的函数作为String 构造函数的原型对象的一个方法。
String.prototype.trim = function()
{
    // 用正则表达式将前后空格
    // 用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

// 有空格的字符串
var s = "    leading and trailing spaces    ";

// 显示 "    leading and trailing spaces     (35)"
window.alert(s + " (" + s.length + ")");

// 删除前后空格
s = s.trim();

window.alert(s + " (" + s.length + ")");  
// 显示"leading and trailing spaces (27)"



分享到:
评论

相关推荐

    深入理解javascript原型和闭包

    深入理解javascript原型和闭包(01)——一切都是对象 深入理解javascript原型和闭包(02)——函数和对象的关系

    JavaScript原型链

    因此,构造函数可以定义其所有实例共享的方法和属性。 例如,有如下代码: ```javascript function Person(name) { this.name = name; } Person.prototype.sayHello = function() { console.log('Hello, ' + ...

    javascript 原型模式实现OOP的再研究

    这里,B类通过`B.prototype = new A()`继承了A类的方法和属性。当调用`new B().print()`时,由于B实例自身没有`print`方法,所以它会查找其`__proto__`(即B.prototype),在这里找到了`print`方法。在B的`print`...

    JavaScript彻底理解JavaScript原型PDF

    彻底理解 JavaScript原型 原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有"[[prototype]]"属性,函数对象有"prototype"属性,原型对象有"constructor"属性。 为了弄清原型,以及原型相关的...

    深度探讨javascript函数的原型链和闭包

    理解函数的原型链和闭包对于深入掌握JavaScript至关重要。 首先,让我们看看函数的定义方式。在JavaScript中,我们可以使用`function`关键字直接定义函数,如`function fn(a, b) {}`。此外,函数也可以通过赋值语句...

    深入理解javascript原型和闭包.pdf

    JavaScript原型和闭包是这门语言中两个比较难以理解且与其他面向对象语言区别较大的概念。理解这两个概念,不仅能让我们更深层次地理解JavaScript,而且有助于我们了解编程语言的设计思路,拓宽我们的视野。 首先,...

    JavaScript中的prototype(原型)属性研究

    ### 原型和性能 虽然原型链提供了强大的继承机制,但过多的原型链查询可能会对性能造成影响。当访问一个对象的属性时,如果需要遍历很长的原型链,可能会导致性能下降。因此,在设计对象结构时应尽量保持原型链的...

    理解Javascript原型继承原理

    ### 理解Javascript原型继承原理 #### 一、引言 在JavaScript中,原型继承是一种非常核心且独特的机制,它使得对象能够继承其他对象的属性和方法。本文旨在深入探讨这一机制,并通过具体的示例代码帮助读者更好地...

    【技术分享】从浅入深 Javascript 原型链与原型链污染 .pdf

    本文将深入探讨JavaScript原型链的工作原理及其可能导致的安全问题——原型链污染。 首先,JavaScript 中的对象继承并不像传统面向对象语言那样基于类,而是通过原型链机制。每个对象都有一个内部属性`[[Prototype]...

    【JavaScript源代码】探究JavaScript原型数据共享与方法共享实现.docx

    本篇文章将深入探讨JavaScript原型数据共享和方法共享的实现。 首先,我们需要理解JavaScript中的原型对象。每个函数在创建时都会自动获得一个`prototype`属性,这个属性是一个对象,它的作用是为该函数的所有实例...

    JavaScript程序设计课件:原型与继承.pptx

    当访问某个对象中的一个不存在的属性或方法时,会自动调用原型中的属性和方法。也就是说,基于原型创建的对象会自动拥有原型的属性和方法。 之前我们学过构造函数,通过构造函数也可以使两个对象具有相同的属性和...

    浅析javascript原型继承机制

    - **prototype属性**:每个构造函数都有一个`prototype`属性,它是一个对象,用于存储将来由构造函数创建的所有实例所共享的方法和属性。 - **constructor属性**:每个由构造函数创建的对象实例都有一个`constructor...

    javascript原型继承工作原理和实例详解_.docx

    ### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...

    浅谈Javascript的静态属性和原型属性

    在JavaScript中,对象的创建和方法的定义有两种主要方式:静态属性和原型属性。本文将深入探讨这两种属性及其在JavaScript中的使用。 首先,静态属性(static properties)是属于类本身而不是类的实例的属性。它们...

    浅析Javascript原型继承 推荐第1/2页

    根据这个链接,JavaScript可以检查一个对象是否具有特定属性或方法,如果没有,则继续在原型链上查找,直到找到或链结束。 现在让我们来分析一个具体的原型继承例子: ```javascript function Gizmo(id) { this....

    JavaScript原型链简单图解

    JavaSciptDOM基本操作,JavaScipt函数基础,JavaScipt流程语句,JavaScript变量,JavaScript数据类型,JavaScript数组,JavaScript正则表达式,JavaScript字符串函数,Window对象等图解。JS高手进阶的工具图谱

    深入理解javascript原型和闭包1

    JavaScript的继承是通过原型链实现的,一个对象可以继承另一个对象的属性和方法。通过设置`prototype`,我们可以让一个函数(即构造函数)的实例继承另一个函数的实例的属性和方法。 (7)——原型的灵活性 ...

    Javascript原型对象、this的5钟用法、原型继承、Caller和Callee的使用.docx

    普通对象的`__proto__`是只读的,而函数对象的`prototype`可以修改,因为函数对象在JavaScript中扮演了“类”的角色,允许创建具有相同属性和方法的对象实例。 **this的五种用法** 1. **全局作用域/函数调用**:`...

Global site tag (gtag.js) - Google Analytics