030. js 对象,构造函数,工具函数 - cwy007/tips-and-skills GitHub Wiki
1. js 中的一些术语
String 对象
Number
Boolean
Array
Object
Regexp
-
new String 构造函数
-
String 工具函数
-
对象方法
-
对象的实例方法
-
将方法部署到对象上
Number.prototype.toString()
Number对象部署了自己的toString方法,用来将一个数值转为字符串形式。
2. Number.prototype.toExponential()
toExponential方法用于将一个数转为科学计数法形式。
// 科学计数法中的 e 指的是英文 exponential (指数)的第一个字母?
// e 的值为 10
(10).toExponential() // "1e+1"
3.Number.prototype.toPrecision()
toPrecision方法用于将一个数转为指定位数的有效数字。
(12.34).toPrecision(1) // "1e+1"
(12.34).toPrecision(2) // "12"
(12.34).toPrecision(3) // "12.3"
(12.34).toPrecision(4) // "12.34"
(12.34).toPrecision(5) // "12.340"
precision 精度,指定位数的有效数字 rails Model中设定decimal十进制验证时,有用到precision (有效数字的位数),scale(小数点后的位数)
4.自定义方法
js 中实例方法定义在prototype对象上
与其他对象一样,Number.prototype
对象上面可以自定义方法,被Number的实例
继承。
Number.prototype.add = function (x) {
return this + x;
};
js: 对象 与 实例
ruby:类别 与 实例
小数点 VS 点运算符
8['add'](2) // 10
上面代码中,调用方法之所以写成8['add']
,而不是8.add
,是因为数值后面的点,会被解释为小数点,而不是点运算符。将数值放在圆括号中,就可以使用点运算符调用方法了。
(8).add(2) // 10
this 指函数的运行环境,上下文
Number.prototype.iterate = function () {
var result = [];
for (var i = 0; i <= this; i++) {
result.push(i);
}
return result;
};
(8).iterate()
// [0, 1, 2, 3, 4, 5, 6, 7, 8]
数值的原型对象
Number.prototype
, 自定义方法定义的地方,数值本身无法定义属性
var n = 1;
n.x = 1;
n.x // undefined
这是因为一旦被调用属性,n就自动转为Number的实例对象,调用结束后,该对象自动销毁。 所以,下一次调用n的属性时,实际取到的是另一个对象,属性x当然就读不出来。