javascript_core_08之闭包、对象、原型
1、闭包:
①外层函数包裹受保护的变量和操作变量的内层函数;
②外层函数将内层函数返回到外部;
③调用外部函数,获得内层函数的对象;
2、面向对象:用对象描述现实一个具体事物属性和功能,按需调用功能,操作属性;
①创建对象:封装:var obj={属性名:属性值,……:……,方法名:function(){……}};对象内的方法中访问对象自己的属性:this.属性名,this默认指当前所在对象;
②new创建单独对象:var obj=new Object();obj.新属性=值;obj.新方法=function(){……};
③反复创建相同结构类型的对象:定义构造函数(constructor),function 类型名(属性参数){this.属性名=属性参数;this.方法名=function(){……}};var obj=new 类型名(属性值,……);
3、创建一个单独对象:
①对象直接量:var obj={属性名:值,方法名:function(){this.属性名}};
②new创建:var obj=new Object();obj.新属性名=值;obj.新方法名=function(){this.属性名}
4、反复创建多个同一类型相同结构对象:
①创建构造函数:function 类型名(属性参数){this.属性名=属性参数;this.方法名=function(){this.属性名}};(优点:代码重用;缺点:无法节约内存——解决方法:继承;);
②new调用构造函数——实例化(instance):var obj=new 类型名(属性值);
5、关于new的四件事:
①创建新的空对象;
②设置新对象的_proto_属性,继承构造函数的原型对象;
③使用新对象调用构造函数,将构造函数中的this替换为新对象;
④返回新对象的地址给变量;
6、原型对象(prototype):集中保存所有子对象的共有成员的父级对象;
①原型对象无需创建,每个构造函数自带原型对象;
②获得:a、子对象._proto_;b、子对象._proto_;(_proto_是内部属性,通过Object.getPrototypeOf(obj)获得obj对象的父级原型对象);
③向原型对象添加共有成员:构造函数.prototype.新成员=XXXX;
7、属性:
①修改自有属性必须用子对象:子对象.属性;
②修改共有属性必须用原型对象:父级对象.prototype.属性;
③删除属性:delete 对象.属性名;只能删除当前对象自有属性;
④自有属性:直接保存在当前对象本地的属性;判断:obj.hasOwnProperty(“属性名”);
⑤共有属性:保存在原型对象,多个子对象共享;判断:!obj.hasOwnProperty(“属性名”)&&obj.属性名!==undefined;
8、原型链:由各级对象的_proto_属性,逐级继承;
①Object.prototype是所有对象的顶级父对象;
②Function.prototype是所有函数对象的顶级父对象;
③内置对象API:对象.方法()——方法保存在对象的构造函数的prototype中;
9、继承关系判断:
①原型对象father.isPrototypeOf(child):判断father是否是child的父对象,或判断child是否继承自father;
②构造函数child instanceof 构造函数:判断child是否是构造函数创建出的实例;
10、判断对象是否为数组类型:
①原型对象:Array.prototype.isPrototypeOf(XXX);
②构造函数:XXX instanceof Array;
③根据对象class属性:Object.prototype.toString.call(obj1)===“【object Array】”;
11、重写(override):子对象在本地定义同名成员,覆盖父对象成员;
javascript_core_08之闭包、对象、原型的更多相关文章
- jquery学习笔记---闭包,原型链,this关键字
网上的资料很多,关于闭包,原型链,面向对象之内的.本人也有一点自己的总结. 关于this: this 的值取决于 function 被调用的方式,一共有四种, 如果一个 function 是一个对象的 ...
- JavaScript函数、闭包、原型、面向对象
JavaScript函数.闭包.原型.面向对象 断言 单元测试框架的核心是断言方法,通常叫assert(). 该方法通常接收一个值--需要断言的值,以及一个表示该断言目的的描述. 如果该值执行的结果为 ...
- js闭包,原型,作用域等再一次理解
要理解闭包,原型等,首先要理解作用域 作用域:就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,而他内部的规则是,把函数自身的本地变量放在最前面,把自身的父级函数中的变量放在其次,把再高 ...
- javascript 创建对象及对象原型链属性介绍
我们知道javascript里定义一个普通对象的方法,如: let obj = {}; obj.num = 1; obj.string = 'string'; obj.func = function( ...
- JavaScript对象原型写法区别
体现对象原型分步式写法 //原型分步式写法 //构造函数 function Person(){} //对象原型 Person.prototype.name = 'Avensatr'; Pers ...
- Javascript高级编程学习笔记(21)—— 对象原型
JS中对象相关的最重要的恐怕就是原型链了 原型链也是JS中对象继承的实现的基础 接昨天的文章,我们使用构造函数创建对象的时候仍然存在一些问题 那就是所有的实例没法共用一个函数 这样无疑会造成极大的内存 ...
- JavaScript对象原型写法详解
体现对象原型分步式写法 //原型分步式写法 //构造函数 function Person(){} //对象原型 Person.prototype.name = 'Avensatr'; Pers ...
- 关于js的对象原型继承(一)
javascript中,对象的继承是通过原型去继承. 可以这样理解:js中的对象,包含的除了属性和方法,还有一个最基本的原型__proto__对象.这个原型__proto__指向谁,这个对象就继承谁. ...
- jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象
这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...
- JS的对象原型
1.对象 1.1 语法 对象可以通过两种形式定义:声明(文字)形式和构造形式. 对象的文字语法: var myObj = { key : value //... }; 对象的构造语法: var myO ...
随机推荐
- grunt
Grunt是node的自动化构建工具,可以执行像压缩, 编译, 单元测试, 代码检查以及打包发布的任务. 类似于C/C++程序通过makefile管理编译测试打包的过程,Java程序通过Maven,A ...
- 小记初试tornado与ajax,一些注意点
一. 在 tornado模板中使用自定义方法 在tornado中可以使用两种方式,达到在模板中调用自定义方法的效果,第一种是使用UIMethod 和UIModule. 1.UIMethod使用方法示例 ...
- 个人博客作业week2——代码复审
1.代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范并不是从官僚制度下产生,它是为了提高项目团队开发效率而产生的一种工具,能够极大的增强代码可读 ...
- 关于 某编译错误: This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
每次当八月在VS2013里使用strcat的时候,基本上都会出现这个问题╮(╯▽╰)╭ 原因貌似是因为安全问题(⊙o⊙) 于是,解决方法如下: ①更改预处理定义: (这也是八月最常用的方法了,虽然貌似 ...
- [Leetcode][JAVA] Interleaving String
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...
- javadoc错误: 编码gbk的不可映射字符
在使用Eclipse进行javadoc的导出时,提示“编码 GBK 的不可映射字符”,应该就是中文注释Eclipse不认,需要在调用javadoc.exe的时候传递编码集告诉它采用什么编码去生成jav ...
- 在WPF的WebBrowser控件中屏蔽脚本错误的提示
在WPF中使用WebBrowser控件显示网页时,经常会报脚本错误的提示,如何屏蔽掉这些错误提示呢.方法是定义如下方法: public void SuppressScriptErrors(WebBro ...
- Linux终端杀手、程序员利器-Tmux
Send article as PDF SA.Coder.经常远程.还在开一堆终端?试试 Tmux 吧,一个窗口就搞定. 目录 0.0.0.1 Tmux ? Tmux 是一个终端复用 ...
- 条件随机场理论分析CRF(Conditional Random Field)
- 丹佛机场行李系统Postmortem
丹佛机场行李系统做Postmortem总结 事情起因是因为丹佛市场承诺进行机场建设,因此此项目问题不可回避,必须完成,合作的双方都是富有经验的公司但是最后依然变成了不可控的项目,经过小组讨论后我们认为 ...