javaScript 真经 小感 this 指向
编程世界只存在两种基本元素:一个是数据、一个是代码。
(能写代码算入门,能处理复杂场景或者数据算合格,能不变应万变是不朽)
最流行的编程思想莫过于面向对象编程,因为面向对象编程思想把数据和代码结合成统一整体,将杂乱的算法和子程序及复杂的数据结构 划分为清晰有序的对象结构。
(js分两种写法:一种面向过程,一种面向对象;面向过程基本就是想到啥写啥,能力强点的给你封装到极致、得体、便与后续阅读; 面向对象就是抽象功能具体化,便于后续扩展,需要深厚功力)
对象本无根,类型亦无形,本来无一物,何处惹尘埃?
(es3无类的定义,但是可以模拟出类的行为特点)
JavaScript 就是把数据和代码简化到最原始的程度。
(js是动态的弱类型语言,数据类型少,轻松互转,不需要生成额外文件跨平台,对象字面量更是直观明了,人性化。)
JavaScript 的简单数据只有五种:number、string、boolean、undefined、null(这哥们特殊,是 object 类型),复杂数据只有一种:object;类似中国的金木水火土,其他复杂的都是由这五种基本元素组成。
(
typeof function(){} "function"
typeof {} "object"
typeof null "object"
typeof [] "object"
typeof 1 "number"
typeof '1' "string"
typeof undefined "undefined"
typeof true "boolean"
typeof NaN "number"
)
js 世界里代码精髓体现为 function。
(正常点的代码基本都是放在 function 里面的)
js 执行引擎并非一行行执行,而是一段段执行。
(此处涉及到一个预编译的概念:函数代码段分步载入 - 变量定义提升 - 函数声明提升 ,按顺序执行 )
函数具有对象全部特征,因为 Function 是 函数祖先,而 Object 是 Function的祖先。
(js 设计完成,已经包含多态对象:函数、日期、正则、数组等。即 ECMAScript 已经内部完成了 由 object 到这些 语法糖的转换,无需怀疑,放心使用,肯定比你自己写出来的继承要好 ~~ )
this 不一定是函数所属对象,可以是任意对象,取决于函数执行时所配置的对象。
(
this指向分三类吧:
var f=function(){};
var o={};
o.f=f;
1. f() window
2. o.f() o
3. f.call(0) o
)
(
还有 this 在 dom中的this指向,及 h5 bind 对 this 指向改变
)
json 即 JavaScript object notation ,js对象表示法,为创建对象提供了最简洁写法: {},逗号分隔项目,项目内分号分隔属性与属性值,即 对象的字典结构。
(
{name:'wj',age:'28'},和小学生查字典这的很像啊,通过name找到wj,通过age找到28,这些数据又依据规则逗号成列在一起...,可读性比xml好太多了,如果同时期出来,绝对完爆它
)
js 中所有的 function 都有一个属性 prototype ,指向一个对象。
(这就是继承了,知道这个,你便可以修改已有的函数、扩展新的函数、面向对象思维编码)
通过 prototype 形成原型链,追根溯源,知道找到匹配的或者结束。
(
写个小故事:
抗日战争时期,有人举报小明家有一个八路,日本军阀要找出他,先找到小明,然后找他爸,再找他爷爷,一旦确定是某个人后就停止寻找。
如果小明是八路则直接带走,并不再寻找。
他不是,则找他爸,是则带走,并不再寻找。
他爸也不是的话,就找他爷爷,是则带走,并不在寻找,
如果他爷爷也不是,那么说明小明家没有八路,也停止寻找。
)
javaScript 真经 小感 this 指向的更多相关文章
- javascript学习-原生javascript的小特效(原生javascript实现链式运动)
以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...
- javascript学习-原生javascript的小特效(多个运动效果整理)
以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...
- javascript中几种this指向问题
javascript中几种this指向问题 首先必须要说的是,this 永远指向函数运行时所在的对象,而不是函数被创建时所在的对象. (1).作为函数名调用 函数作为全局对象调用,this指向 ...
- JavaScript设计模式小抄集(持续更新)
前言 本文旨在记录JavaScript中常用的设计模式代码片段,简要说明使用场景,不过于追究细节.在设计模式开篇之前,还是先要搞清楚JavaScript中关于面向对象的基础知识,可以先看看JavaSc ...
- JavaScript 你真的了解this指向吗
JavaScript 你真的了解this指向吗 前言 终于开始写this指向了,相信这对很多JavaScript的学习者来说是一个非常恐怖的环节,个人认为也算是JavaScript中最难理解的一个知识 ...
- 【JavaScript定时器小案例】常见的几种定时器实现的案例
[JavaScript定时器小案例]常见的几种定时器实现的案例 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在日常开发 ...
- 有用的JavaScript开发小建议
这篇文章将向你分享一些不为人知的但很有用的JavaScript小建议,对那些刚涉及使用JavaScript编程语言的初级开发者应该有很大的帮助. 1. 用数组长度截取数组 我们都知道,对象都是通过使用 ...
- 你想的到想不到的 javascript 应用小技巧方法
javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElemen ...
- 41个Web开发者JavaScript实用小技巧
1. 将彻底屏蔽鼠标右键 oncontextmenu="window.event.returnValue=false" < table border oncontextmen ...
随机推荐
- 微信小程序 --- 获取当前坐标
获取位置:get.location type:wgs84(是全球定位系统,获取的坐标,gcj02是国家测绘局给出的坐标) btnclick:function(){ wx.getLocation({ t ...
- Maven搭建Nexus私有仓库
下载压缩包nexus-2.13.0-01-bundle.tar.gz 解压后有两个目录 进入程序目录启动 ./nexus start 启动告警(确认用root启动把以下加入到环境变量) export ...
- Oracle下where子句
课外题 要求:删除某一个用户,同时保留该用户的数据?如何解决 alter user scott account lock :改天需要使用则解锁unlock 锁定用户使用sysdba登录还是可以查看数据 ...
- 【优先队列】POJ2010- Moo University-Financial Aid
[题目大意] 给出C头奶牛的SAT成绩和申请奖学金,选出N头牛,使得总奖学金在≤F的情况下奶牛SAT成绩的中位数最大. [思路] 假设before[i]表示前i头奶牛中n/2头奶牛奖学金总额的最小值, ...
- Oracle等待事件之db file sequential read/ db file parallel read
1.产生原因 db file sequential read这个是非常常见的I/O 相关的等待事件.表示发生了与索引扫描相关的等待.意味着I/O 出现了问题,通常表示I/O竞争或者I/O 需求太多. ...
- Ensure Indexes Fit in RAM
Ensure Indexes Fit in RAM — MongoDB Manual https://docs.mongodb.com/manual/tutorial/ensure-indexes-f ...
- inotify+rsync安装配置
环境 系统 IP地址 主服务器 CentOS7.4 192.168.1.1 备份服务器 CentOS7.4 192.168.1.2 一.备份服务器 安装rsync(备) wget https://rs ...
- day09:Servlet详解
day09 Servlet概述 生命周期方法: void init(ServletConfig):出生之后(1次): void service(ServletRequest request, ...
- 第1章 1.6计算机网络概述--OSI参考模型
ISO七层模式:国际标准组织对互联网通信规则进行的定义. 7.应用层:所有能产生网络流量的程序,如:QQ. 6.表示层:传输前对数据进行进行处理,是一种数据处理的规则,如:加密.压缩.传输二进制(图片 ...
- /etc/rc.d/rc.local linux启动自动开启某些服务(转)
/etc/rc.d/rc.local似乎是很多Linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务.程序等,只要系统没有提供Sys V风格的启动脚本,就把这些需求都塞到/etc/rc.d/rc ...