编程世界只存在两种基本元素:一个是数据、一个是代码。

(能写代码算入门,能处理复杂场景或者数据算合格,能不变应万变是不朽)

最流行的编程思想莫过于面向对象编程,因为面向对象编程思想把数据和代码结合成统一整体,将杂乱的算法和子程序及复杂的数据结构 划分为清晰有序的对象结构。

(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 形成原型链,追根溯源,知道找到匹配的或者结束。

写个小故事:

抗日战争时期,有人举报小明家有一个八路,日本军阀要找出他,先找到小明,然后找他爸,再找他爷爷,一旦确定是某个人后就停止寻找。

如果小明是八路则直接带走,并不再寻找。

他不是,则找他爸,是则带走,并不再寻找。

他爸也不是的话,就找他爷爷,是则带走,并不在寻找,

如果他爷爷也不是,那么说明小明家没有八路,也停止寻找。

真经链接

this | MDN

javaScript 真经 小感 this 指向的更多相关文章

  1. javascript学习-原生javascript的小特效(原生javascript实现链式运动)

    以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...

  2. javascript学习-原生javascript的小特效(多个运动效果整理)

    以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...

  3. javascript中几种this指向问题

    javascript中几种this指向问题   首先必须要说的是,this 永远指向函数运行时所在的对象,而不是函数被创建时所在的对象. (1).作为函数名调用   函数作为全局对象调用,this指向 ...

  4. JavaScript设计模式小抄集(持续更新)

    前言 本文旨在记录JavaScript中常用的设计模式代码片段,简要说明使用场景,不过于追究细节.在设计模式开篇之前,还是先要搞清楚JavaScript中关于面向对象的基础知识,可以先看看JavaSc ...

  5. JavaScript 你真的了解this指向吗

    JavaScript 你真的了解this指向吗 前言 终于开始写this指向了,相信这对很多JavaScript的学习者来说是一个非常恐怖的环节,个人认为也算是JavaScript中最难理解的一个知识 ...

  6. 【JavaScript定时器小案例】常见的几种定时器实现的案例

    [JavaScript定时器小案例]常见的几种定时器实现的案例 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在日常开发 ...

  7. 有用的JavaScript开发小建议

    这篇文章将向你分享一些不为人知的但很有用的JavaScript小建议,对那些刚涉及使用JavaScript编程语言的初级开发者应该有很大的帮助. 1. 用数组长度截取数组 我们都知道,对象都是通过使用 ...

  8. 你想的到想不到的 javascript 应用小技巧方法

    javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElemen ...

  9. 41个Web开发者JavaScript实用小技巧

    1. 将彻底屏蔽鼠标右键 oncontextmenu="window.event.returnValue=false" < table border oncontextmen ...

随机推荐

  1. Python - 3.6 学习四

    错误.调试和测试 程序运行中,可能会遇到BUG.用户输入异常数据以及其它环境的异常,这些都需要程序猿进行处理.Python提供了一套内置的异常处理机制,供程序猿使用,同时PDB提供了调试代码的功能,除 ...

  2. angularJs初体验,实现双向数据绑定!使用体会:比较爽

    使用初体验:ng 双向数据绑定: 最简单的双向数据绑定:(使用默认模块控制) <body ng-app> <input type="text" ng-model= ...

  3. C# tostring 格式化输出

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

  4. pta习题集5-16 朋友圈

    某学校有N个学生,形成M个俱乐部.每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈.一个学生可以同时属于若干个不同的俱乐部.根据"我的朋友的朋友也是我的朋友"这个推论可以得 ...

  5. CH1809匹配统计【KMP】

    1809 匹配统计 0x18「基本数据结构」练习 描述 阿轩在纸上写了两个字符串,分别记为A和B.利用在数据结构与算法课上学到的知识,他很容易地求出了“字符串A从任意位置开始的后缀子串”与“字符串B” ...

  6. Elasticsearch之settings和mappings(图文详解)

    Elasticsearch之settings和mappings的意义 简单的说,就是 settings是修改分片和副本数的. mappings是修改字段和类型的. 记住,可以用url方式来操作它们,也 ...

  7. Jamie's Contact Groups---hdu1669--poj2289(多重匹配+二分)

    题目链接 题意:Jamie有很多联系人,但是很不方便管理,他想把这些联系人分成组,已知这些联系人可以被分到哪个组中去,而且要求每个组的联系人上限最小,即有一整数k,使每个组的联系人数都不大于k,问这个 ...

  8. django自带权限机制

    1. Django权限机制概述 权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活:用好权限机制,能让系统更加强大和健壮.因此,基于Django的开发,理清Django权限机制是 ...

  9. 协变返回类型---《C++必知必会》 条款 31

    一般来说,一个重写的函数与被它重写的函数具有相同的返回类型. 然而,这个规则对于“协变返回类型(covariant  return type)“的情形来说有所放松.也就是说,如果B是一个类类型,并且一 ...

  10. .NET 海量数据处理,并处理事务问题

    1.下面是一个C#的控制台以代码来说明处理 using System.Data.SqlClient; class Program { static void Main() { string conne ...