JS高级——扩展内置对象的方法
基本概念
内置对象有很多,几个比较重要的:Math、String、Date、Array
基本使用
1、内置对象创建出来的对象使用的方法使用的其实都是内置对象的原型对象中的方法
(1)a并没有charAt方法,但是它的原型确有此方法
<script>
var a = new String('hello');
console.log(a.charAt(1));
console.log(a);
</script>
2、所以扩展内置对象的方法,可以直接给原型对象的属性进行扩展
(1)将字符串的第一个字符转成大写
<script>
String.prototype.toUpper = function () {
// this[0]--会有版本兼容问题
var first = this.charAt(0);
first = first.toUpperCase();
return first + this.substr(1);
} var a = 'hello';
console.log(a.toUpper());//Hello
</script>
3、简单类型使用内置对象扩展方法的问题
(1)打印简单类型,返回都是都所赋的值,他们是怎么能够获取到内置对象的方法呢?
(2)简单类型调用内置对象方法的时候,会进行一个隐式的转换
<script>
'hello'.charAt(1);
//====>大概隐式转换过程
var _s = new String('hello');
_s.charAt(1);
_s = null
</script>
4、直接将内置对象的原型对象进行替换是系统不允许的,替换了也是白替换,在严格模式下 会直接报错'use strict'
5、所以最好的 方法是通过一个干净的中介,最后可以达到不修改原内置对象的目的
<body>
<script>
function Person() { }
Person.prototype = new Array();
Person.prototype.say = function () {
console.log(1);
}
console.dir(new Person());
console.dir(new Array());
</script>
</body>
JS高级——扩展内置对象的方法的更多相关文章
- JS高级---为内置对象添加原型方法
为内置对象添加原型方法 我们能否为系统的对象的原型中添加方法, 相当于在改变源码 我希望字符串中有一个倒序字符串的方法 //我希望字符串中有一个倒序字符串的方法 String.prototype. ...
- JS中的内置对象简介与简单的属性方法
JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一 ...
- javascript高级知识点——内置对象原型
代码信息来自于http://ejohn.org/apps/learn/. 可以修改内置对象的方法. if (!Array.prototype.forEach) { Array.prototype.fo ...
- jsp内置对象的方法
JSP内置对象的方法:out:out.print();request:request对象主要用于出列客户端请求. 常用方法: String getParameter(String name) ...
- JavaScript (内置对象及方法)
JavaScript中的对象分为3种:内置对象.浏览器对象.自定义对象 JavaScript 提供多个内置对象:Math/Array/Number/String/Boolean... 对象只是带有属性 ...
- javaScript中Math内置对象基本方法入门
概念 Math 是javaScript的内置对象,包含了部分数学常数属性和数学函数方法. Math 不是一个函数对象,用户Number类型进行使用,不支持BigInt. Math 的所有属性与方法都是 ...
- JS常见内置对象和方法
JS中常用的内置对象:Array对象.Date对象.正则表达式对象.string对象.Global对象 Array对象中常用方法: concat() 表示把几个数组合并成一个数组join() 设 ...
- js常用内置对象及方法
在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( ) 数组开 ...
- JS-安全检测JavaScript基本数据类型和内置对象的方法
前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议 ...
随机推荐
- 复习1背包dp
背包问题是对于一个有限制的容器,一般计算可以装的物品的价值最值或数量.通常每个物品都有两个属性空间和价值,有时还有数量或别的限制条件,这个因体而异. 背包大概分成3部分,下面会细述这最经典的3种题型 ...
- 轰炸III
题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. ...
- 使用java操作hbase(单节点)
1.在运行java代码之前,一定要先启动Hbase,很重要!! cd /home/cx/itcast/hbase-1.2.6/bin ./start-hbase.sh 2.新建一个java项 ...
- CODEVS1222 信与信封问题 (匈牙利算法)
先做一遍匈牙利算法.对于已经匹配的边,如果删去之后还能最大匹配数增加,则不符合要求. 一遍匈牙利算法是O(n^3)的,对于每一条边做n次,每次O(n^2),总的复杂度是O(n^3). 注意:不要忘记输 ...
- kendo grid 报错:length
其实是:events中的{}Onsave的问题,把events整个注释掉就好了
- 线程调度策略SCHED_RR(轮转法)和SCHED_FIFO(先进先出)之对照
我们在用pthread创建线程时,能够指定调度策略policy--SCHED_OTHER(默认).SCHED_RR和SCHED_FIFO.这里TALK一下两个实时策略--SCHED_RR和SCHED_ ...
- postgresql 创建函数
One of the most powerful features of PostgreSQL is its support for user-defined functions written in ...
- C++学习之继承中的访问控制
我们通常认为一个类有两种不同的用户:普通用户 和 类的实现者.其中,普通用户编写的代码使用类的对象,这部分代码只能访问类的公有(接口)成员:实现者则负责编写类的成员和友元的代码,成员和友元既能访问类的 ...
- FOBiz组合模糊查询
List list= delegator.findList("Entity",condition , null, null, null, false);其中condition为:组 ...
- Python:SMOTE算法——样本不均衡时候生成新样本的算法
Python:SMOTE算法 直接用python的库, imbalanced-learn imbalanced-learn is a python package offering a number ...