前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript灵活性

JavaScript灵活性

作者头像
奋飛
发布2019-08-15 10:21:39
3580
发布2019-08-15 10:21:39
举报
文章被收录于专栏:Super 前端Super 前端

一提及JavaScript,大家都会想到其基于对象、简单、跨平台,然而其灵活性也值得大家津津乐道的!

一、数值调用方法

代码语言:javascript
复制
Number.prototype.add = function(x){
	return this + x;
};

由于 Number 的实例就是数值,在数值上调用某个方法,数值会自动转为实例对象

2['add'](3); //5 调用方法之所以写成8['add'],而不是8.add,是因为数值后面的点,会被解释为小数点,而不是点运算符。

(2).add(3); //5

等价于:

2..add(3); //5第一个点解释为小数点,第二个点解释为点运算符。

代码语言:javascript
复制
Number.prototype.sub = function(x){
	return this - x;
}

2['add'](3)['sub'](1);//4 级联调用

总之,现在我们可以在数值上直接调用方法了。

二、数值调用属性

代码语言:javascript
复制
Number.prototype.double = function(){ return this + this; };
Number.prototype.square = function(){ return this * this; };

(2).double().square();		//16
2['double']()['square']();	//16
2..double().square();		//16

但是,可以将上述两个方法的调用改为读取属性的方式,ES5规定,每个对象的属性都有一个取值方法get,用来自定义该属性的读取操作。

代码语言:javascript
复制
<pre name="code" class="javascript">Number.prototype = Object.defineProperty(Number.prototype,"double",{
	get:function(){
		return this + this;
	}
});

Number.prototype = Object.defineProperty(Number.prototype,"square",{
	get:function(){
		return this * this;
	}
});

(2).double.square;	//16
2['double']['square'];	//16
代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年07月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数值调用方法
  • 二、数值调用属性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档