深入理解javascript原型和闭包(7)——原型的灵活性
在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。
而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子。
首先,对象属性可以随时改动。
对象或者函数,刚开始new出来之后,可能啥属性都没有。但是你可以这会儿加一个,过一会儿在加两个,非常灵活。
在jQuery的源码中,对象被创建时什么属性都没有,都是代码一步一步执行时,一个一个加上的。
其次,如果继承的方法不合适,可以做出修改。
var obj = {a: 10, b: 20};
console.log(obj.toString()); //[object Object]
var arr = [1, 2, true];
console.log(arr.toString()); //1,2,true
如上图,Object和Array的toString()方法不一样。肯定是Array.prototype.toString()方法做了修改。
同理,我也可以自定义一个函数,并自己去修改prototype.toString()方法。
function Foo(){}
var f1 = new Foo();
Foo.prototype.toString = function(){return 'myName';
}
console.log(f1.toString()); //myName
最后,如果感觉当前缺少你要用的方法,可以自己去创建。
例如在json2.js源码中,为Date、String、Number、Boolean方法添加一个toJSON的属性。
如果你要添加内置方法的原型属性,最好做一步判断,如果该属性不存在,则添加。如果本来就存在,就没必要再添加了。
深入理解javascript原型和闭包(7)——原型的灵活性相关推荐
- 深入理解JavaScript系列:闭包(Closures)
介绍 本章我们将介绍在JavaScript里大家经常来讨论的话题 -- 闭包(closure).闭包其实大家都已经谈烂了.尽管如此,这里还是要试着从理论角度来讨论下闭包,看看ECMAScript中的闭 ...
- JavaScript —— this、闭包、原型、异步
转载自水歌博客,方便学习,顺便前排观望大佬! JavaScript 是一门原生支持函数式编程范式的.基于原型的面向对象语言,也是一门弱类型动态脚本语言 What's this ? JavaScript ...
- 深入理解JavaScript中的闭包
闭包没有想象的那么简单 闭包的概念在JavaScript中占据了十分重要的地位,有不少开发者分不清匿名函数和闭包的概念,把它们混为一谈,我希望借这篇文章能够让大家对闭包有一个清晰的认识. 大家都知道变 ...
- 十分钟,快速理解JavaScript中的闭包概念
海阔凭鱼跃,天高任鸟飞.Hey 你好!我是猫力Molly 闭包已经是一个老生常谈的问题了,不同的人对闭包有不同的理解.今天我来浅谈一下闭包,大家一起来就"闭包"这个话题,展开讨论, ...
- [译]Javascript中的闭包(closures)
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- 深入理解javascript原型和闭包(16)——完结
之前一共用15篇文章,把javascript的原型和闭包. 首先,javascript本来就"不容易学".不是说它有多难,而是学习它的人,往往都是在学会了其他语言之后,又学java ...
- 深入理解javascript原型和闭包(17)——补this
本文对<深入理解javascript原型和闭包(10)--this>一篇进行补充,原文链接:http://www.cnblogs.com/wangfupeng1988/p/3988422. ...
- 深入理解javascript原型和闭包(3)——prototype原型
既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名.如果它还是您的新朋友,我估计您也是javascript的新朋友. 在咱们的第一节(深入理解 ...
- 深入理解JavaScript原型与闭包
说明 本文为作者学习记录相关笔记及理解,如有不妥之处,请各位读者积极指出, 虽然标题是深入理解,但可能存在许多不够深入的地方,请各位小伙伴不吝赐教 一切都是对象 一切引用类型都是对象,对象是属性的集合 ...
- 深入理解javascript原型和闭包(15)——闭包
前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础. 至于"闭包"这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住. 但是你只需要知 ...
最新文章
- 万万想不到,你是这样的“闲鱼”!
- centos6.6安装python2.7
- 【完结】如何掌握基于图像和视频的人脸表情识别,这9篇文章可以作为一个参考...
- CommandLineRunner与ApplicationRunner接口的使用及源码解析
- 刚接触git,提交文件时,遇到no changes added to commit
- FE助手 json格式化 reslet client
- mysql 日期滞后_如何滞后MySQL中的列?
- C/C++之win98扫雷外挂基础篇
- Tensorflow学习—— 预创建的 Estimator
- Kafka eagle 安装
- 田逸:坎坷IT路 从机修工到系统管理高手『英雄故事』
- 2、那智机器人时序基板的TBEX1、TBEX2连接
- 遗传+粒子群 求解多配送中心车辆调度问题(python)
- 机械制造作业考研题目答案分享——定位误差及其计算
- 2.1Mysql 基础--基本介绍
- 戴个美瞳却患上了角膜炎和干眼症?
- 简明c语言,简明易懂的C语言俄罗斯方块
- 网络安全学习笔记6(批处理编写)
- DialogFragment 白边去除
- 【java初学】static关键字和接口
热门文章
- SQL语句的基本语法一
- rabbitmq 如何删除队列中的消息
- Python中的支持向量机SVM的使用(有实例项目给的地址)
- PHP的http_build_query
- 控制面版中文件服务器属性,《服务器配置与管理》第3章基本配置.pptx
- java file构造方法_Java中FileOutputStream类的常用方法
- windows常用的几个操作
- 排查链接是否失效_如何进行移动站点流量排查?
- 西南石油大学计算机科学校区,任冬梅 - 西南石油大学 - 计算机科学学院
- 程序员离职原因的最佳回答_程序员面试被问离职原因,如实回答不适应996,面试官答复尴尬了...