JS高级——扩展内置对象的方法

时间:2021-08-08 13:42:58

基本概念

内置对象有很多,几个比较重要的:Math、String、Date、Array

基本使用

1、内置对象创建出来的对象使用的方法使用的其实都是内置对象的原型对象中的方法

(1)a并没有charAt方法,但是它的原型确有此方法

<script>
var a = new String('hello');
console.log(a.charAt(1));
console.log(a);
</script>

JS高级——扩展内置对象的方法

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高级——扩展内置对象的方法的更多相关文章

  1. JS高级---为内置对象添加原型方法

    为内置对象添加原型方法 我们能否为系统的对象的原型中添加方法, 相当于在改变源码   我希望字符串中有一个倒序字符串的方法 //我希望字符串中有一个倒序字符串的方法 String.prototype. ...

  2. JS中的内置对象简介与简单的属性方法

    JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一 ...

  3. javascript高级知识点——内置对象原型

    代码信息来自于http://ejohn.org/apps/learn/. 可以修改内置对象的方法. if (!Array.prototype.forEach) { Array.prototype.fo ...

  4. jsp内置对象的方法

    JSP内置对象的方法:out:out.print();request:request对象主要用于出列客户端请求.   常用方法:    String getParameter(String name) ...

  5. JavaScript (内置对象及方法)

    JavaScript中的对象分为3种:内置对象.浏览器对象.自定义对象 JavaScript 提供多个内置对象:Math/Array/Number/String/Boolean... 对象只是带有属性 ...

  6. JS常见内置对象和方法

    JS中常用的内置对象:Array对象.Date对象.正则表达式对象.string对象.Global对象  Array对象中常用方法: concat() 表示把几个数组合并成一个数组join()   设 ...

  7. js常用内置对象及方法

    在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( )    数组开 ...

  8. JS-安全检测JavaScript基本数据类型和内置对象的方法

    前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议 ...

  9. JS数组及内置对象

    [JS中的数组]1.数组的概念:数组是在内存中连续存储多个有序元素的结构元素的顺序,称为下标,通过下标查找对应元素.2.数组的声明: ① 字面量声明: var arr1 = [];JS中同一数组,可以 ...

随机推荐

  1. ABP文档 - 审计日志

    文档目录 本节内容: 简介 关于 IAuditingStore 配置 通过特性启用/禁用 注意 简介 *:“一个审计追踪(也叫审计日志)是一个安全相关的时序记录.记录组.和/或记录源和目标,作为 ...

  2. 用Canvas&plus;Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具

    直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...

  3. 【BZOJ 2818】gcd 欧拉筛

    枚举小于n的质数,然后再枚举小于n/这个质数的Φ的和,乘2再加1即可.乘2是因为xy互换是另一组解,加1是x==y==1时的一组解.至于求和我们只需处理前缀和就可以啦,注意Φ(1)的值不能包含在前缀和 ...

  4. js实现各种常用排序算法

    1.冒泡排序 var bubbleSort = function (arr) { var flag = true; var len = arr.length; for (var i = 0; i &l ...

  5. style在进行图形绘制前,要设置好绘图的样式

    是html5出现的新标签,像所有的dom对象一样它有自己本身的属性.方法和事件,其中就有绘图的方法,js能够调用它来进行绘图 ,最近在研读<html5与css3权威指南>下面对其中最好玩的 ...

  6. Unity3D ShaderLab 各向异性高光

    Unity3D ShaderLab 各向异性高光 各向异性时一种模拟物体表面沟槽方向性的高光反射类型,它会修改或延伸垂直方向上的高光.当我们想模拟金属拉丝高光的时候,它非常适合.下面就一步一步实现. ...

  7. main方法执行之前,做什么事

    1.我们知道程序的入口是main方法,那么在执行main方法之前,需要做些什么准备工作呢? 2.main方法执行之前,必须要把non-local static对象构造完成.static对象有:全局对象 ...

  8. right way check file open and end

    check if a state is ok while(cin >> word) // ok: read successful condition states are constant ...

  9. mixpanel实验教程&lpar;2&rpar;

    六.发送邮件和推送通知 选择该用户前面的 checkbox,点击 Send A Notification button,从下拉列表中选择 Email Message/Push Notifiaction ...

  10. angular开发环境配置全套教程

    第一步.安装node.js 1.需要下载的文件路径:https://nodejs.org/en/download/ 2.安装nodejs: 3.验证node.js 4.npm安装以及验证: npm的安 ...