`
ybhuxiao
  • 浏览: 193328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript的valueOf跟toString

阅读更多
转自

举个简单例子:

假设在古代,一两黄金换20两白银,一两白银换25枚铜钱,构建描述货币的类:

	function Money(gold, silver, coin){
		this.gold = gold;
		this.silver = silver;
		this.coin = coin;
	}
	
	Money.parse = function(value){
		var coin = parseInt(value % 25);
		var silver = parseInt(value / 25 % 20);
		var gold = parseInt(value / 500);
		return new Money(gold, silver, coin);
	}
	
	Money.prototype.valueOf = function(){
		return ((this.gold * 20) + this.silver) * 25 + this.coin;
	}
	
	Money.prototype.toString = function(){
		return this.gold + "两黄金," + this.silver + "两白银," + this.coin + "文钱";
	}
	
	var money1 = new Money(5, 6, 1);
	var money2 = new Money(2, 4, 6);
	
	var money3 = Money.parse(money1 + money2);
	alert(money3);


运行结果如下:





这里隐式调用了valueOf跟toString,二者并存的情况下,在数值运算中,优先调用了valueOf,字符串运算中,优先调用了toString。比如
money1 + money2,调用的就是两者valueOf之后的值相加,而alert的时候,把money3先toString了一下。

这个例子其实是模仿js内置对象Date的,Date基本上也是这样处理问题的。

  • 大小: 13.4 KB
0
0
分享到:
评论

相关推荐

    全面解析JavaScript中的valueOf与toString方法(推荐)

    在JavaScript中,`valueOf`和`toString`方法是两种用于对象转换的核心机制,尤其是在处理基本类型和对象实例的转换时。这两个方法对于理解和编写高效、可靠的JavaScript代码至关重要。 `valueOf`方法主要用于返回...

    JavaScript中valueOf函数与toString方法深入理解

    JavaScript中的valueOf和toString方法是两种常见的对象转换方法,它们用于将JavaScript对象转换为基本数据类型。在JavaScript中,除了null,几乎所有内置的数据类型都具备这两个方法。这些方法在处理值的计算和显示...

    深入理解Javascript中的valueOf与toString

    基本上,javascript中所有数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题,本文将详细介绍,有需要的朋友可以参考下。 toString() toString()函数的作用是返回object...

    JavaScript函数中关于valueOf和toString的理解

    在JavaScript中,`valueOf`和`toString`是两个非常重要的内置方法,它们主要与对象的类型转换有关。在处理函数时,这两个方法尤其关键,因为函数本身也是JavaScript中的对象,可以拥有自己的属性和方法。 首先,`...

    Javascript中valueOf与toString区别浅析

    在JavaScript中,`valueOf`和`toString`是两个非常重要的内置方法,它们分别用于将对象转换为原始值和字符串。这两个方法在不同的上下文和运算中有着不同的调用规则,理解它们的区别对于编写高质量的JavaScript代码...

    javascript中tostring()和valueof()的用法及两者的区别

    在JavaScript中,`toString()`和`valueOf()`是两种常见的对象方法,它们的作用在于将对象转换成更适合当前上下文的表示形式。尽管这两种方法在很多情况下都可以用来获取对象的字符串表示,但它们之间存在一些关键的...

    Javascript valueOf 使用方法

    JavaScript中的`valueOf`方法是内置在所有对象中的一个方法,它的主要作用是返回对象的原始值。这个方法的行为取决于调用它的对象类型。在不同的上下文中,`valueOf`有着不同的表现,下面我们将深入探讨`valueOf`在...

    JavaScript中的object转换函数toString()与valueOf()介绍

    JavaScript中,object转换为boolean的操作非常简单:所有的...在将object转换为string或者number时,JavaScript会调用object的两个转换函数:toString()与valueOf()。 toString() toString()函数的作用是返回object的字

    js代码-valueOf 和 toString()的用处

    在JavaScript编程语言中,`valueOf`和`toString`是两种非常重要的对象方法,它们用于将对象转换为基本数据类型或字符串。这两个方法在处理自定义类型或者内置类型的对象时尤其有用,下面我们将深入探讨它们的用途和...

    javascript中强制执行toString()具体实现

    Brian McKenna (@puffnfresh) suggests 提供了下列测试代码: 代码如下: Object.prototype.valueOf = function () { throw new Error(‘Use an explicit toString’); }; [\s\S ]*\n 这些代码会产生什么效果? 你...

Global site tag (gtag.js) - Google Analytics