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

编程世界只存在两种基本元素:一个是数据.一个是代码. (能写代码算入门,能处理复杂场景或者数据算合格,能不变应万变是不朽) 最流行的编程思想莫过于面向对象编程,因为面向对象编程思想把数据和代码结合成统一整体,将杂乱的算法和子程序及复杂的数据结构 划分为清晰有序的对象结构. (js分两种写法:一种面向过程,一种面向对象:面向过程基本就是想到啥写啥,能力强点的给你封装到极致.得体.便与后续阅读: 面向对象就是抽象功能具体化,便于后续扩展,需要深厚功力) 对象本无根,类型亦无形,本来无一物,何处惹尘埃…
以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css&…
以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css&…
javascript中几种this指向问题   首先必须要说的是,this 永远指向函数运行时所在的对象,而不是函数被创建时所在的对象. (1).作为函数名调用   函数作为全局对象调用,this指向全局对象 function a(){ var author = "lry"; console.log(this.author); //undefined console.log(this); //Window } a(); //其实这是相当于 window.a() (2).作为方法调用  …
前言 本文旨在记录JavaScript中常用的设计模式代码片段,简要说明使用场景,不过于追究细节.在设计模式开篇之前,还是先要搞清楚JavaScript中关于面向对象的基础知识,可以先看看JavaScript面向对象小抄集 JavaScript设计模式 简单工厂(Simple Factory) 简单工厂又叫做静态工厂方法( Static Factory Method ),由一个工厂对象决定创建某一种产品对象类的实例.主要用来创建同一类对象 类型:创建型 适用场景: 工厂类负责创建的对象比较少 客…
JavaScript 你真的了解this指向吗 前言 终于开始写this指向了,相信这对很多JavaScript的学习者来说是一个非常恐怖的环节,个人认为也算是JavaScript中最难理解的一个知识点,this非常的方便但是在你不熟悉它的情况下可能会出现很多坑. 本篇文章将带你充分了解this指向,用最精炼简短的语句阐述不同情况下的this指向. 详解this指向 window对象 window是一个全局的对象,里面存了很多方法. 当我们使用var进行变量命名时,变量名会存入到window对象…
[JavaScript定时器小案例]常见的几种定时器实现的案例 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在日常开发中定时器的使用还是挺多的,这里介绍几种比较常见的. 案例一:手机验证码倒计时 代码 <!DOCTYPE html> <html> <body> <input type="button" value="获取验证码" onclick…
这篇文章将向你分享一些不为人知的但很有用的JavaScript小建议,对那些刚涉及使用JavaScript编程语言的初级开发者应该有很大的帮助. 1. 用数组长度截取数组 我们都知道,对象都是通过使用JavaScript引用的,但这并不是唯一的准则,请看下面的检验案例: var arr1 = arr2 = [1, 2, 3]; //Change arr1 arr1 = [];// arr2 will still be [1,2,3]   最初,arr1和arr2都指向了数组[1,2,3],之后当…
javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x…
1. 将彻底屏蔽鼠标右键 oncontextmenu="window.event.returnValue=false" < table border oncontextmenu=return(false)>< td>no< /table> 可用于 Table 2. 取消选取.防止复制 < body onselectstart="return false"> 3.JS不允许粘贴 onpaste="return…
1.async 类型:Boolean 默认值: true.默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false. 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. In Javascript, it is impossible for a function to return an asynchronous result. The function will usually return before the AJAX request is e…
'debugger;' 除了console.log,debugger就是另一个我很喜欢的快速调试的工具,将debugger加入代码之后,Chrome会自动在插入它的地方停止,很像C或者Java里面打断点.你也可以在一些条件控制中插入该调试语句,譬如: if (thisThing) { debugger; } 将Objects以表格形式展示 有时候我们需要看一些复杂的对象的详细信息,最简单的方法就是用console.log然后展示成一个列表状,上下滚动进行浏览.不过似乎用console.table…
1.判断class存在 $(obj).hasClass('BTCheck_ON') $obj.attr('class')=="BTCheck_ON" 有时我们判断样式存在会写成第二种形式,但是这种写法是有问题的.如果那个DOM元素设置是class="BTCheck_ON MyClass",那上面的结果就是false了. 所以如果判断样式存在就要用第一种. 2.三目表达式 var label =typeof json.label=="undefined&qu…
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 今天为大家做的是多个物体的运动效果, 1:HTML <body> <ul>       <li></li>       <li></li>       <li></li>  </ul>  </body> 2:css <style type="text/css">       body,*…
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 ( 以下效果兼容IE5+ IE5-以下没有测试哦) 今天为大家演示的效果是一个div,鼠标经过的时候透明度为100%,鼠标移出的时候透明度变为原来的50%. 也许大家会问现在这么多流行的JS框架和CSS3的transition配合伪类:hover都可以实现的效果干嘛要用这么老套的方式呢?没错的,现在用CSS3,JS框架都是可以轻松的实现以下的效果,但是为了学习原生的javascript的童鞋,用CSS3和JS框架实现的就留给大…
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 一:运动特效(主要是通过改变元素的left,right,height,width,opacity来达到运动的效果) 我们今天做一个利用计时器来创建一个匀速运动的效果,代码很简单. 1:首先我们先写出HTML的结构 <div id="div1"> <span id="share">share</span> </div> 2:给出样式 <style…
1.当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值 undefined.当你对一个值为 undefined 的变量进行运算操作的时候,算出来的结果将会是 NaN,NaN 的意思是 "Not a Number".当你用一个没有 定义 的变量来做字符串连接操作的时候,它会如实的输出"undefined". 2.在 JavaScript 中所有的变量都是大小写敏感的.这意味着你要区别对待大写字母和小写字母.使用 驼峰命名法 来书写一个 Javas…
  前  言           我们的程序语言经历了从"面向机器".到"面向过程".再到"面向对象"的一个过程.而JavaScript是一门基于对象的一门语言,它介于面向过程与面向对象之间.在学习JavaScript的过程中,OOP是非常重要的一环,下面我们来一起探讨一下JS中的面向对象吧!!! 1 .OOP的基础问题 1.1什么是面向过程和面向对象? 面向过程:专注于如何去解决一个问题的过程步骤.编程特点是由一个个的函数去实现每一步的过程步骤…
完成这个综合小案例,对于html.css.javascript的大部分内容复习快结束了. 这里做一个小案例--要实现的功能,以一张图片的形式给出: 首先,写出提交数据之后进入的页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmln…
Js 对象 使用new 关键字来创建对象,举例如下, var a = new String();如构造函数无参数,则不必加括号, JS内部对象数组(Array)对象创建数组var myarray = new Array(0); //创建一个长度为0的数组 var myarray = new Array(1,2,3); //创建一个指定长度的数组,禀赋初值数组长度不固定,赋值即可改变长度,数组的主要属性为lengh,返回数组长度, 数组的常用方法:reverse 方法 :将JavaScript 数…
本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false 值: 0, '0', +0, -0, false, '',null,undefined,NaN 要注意空数组([])和空对象({}): console.log([] == false) //true console.log({} == false) //false console.log(Boole…
在查了大量的资料后,我总结了下面的三条规则,这三条规则,已经可以解决目前我所遇到的所有问题.规则0:函数本身是一个特殊类型,大多数时候,可以认为是一个变量. function a() { alert(this); } 或者 var a = function() { alert(this); } 都可以认为是创建了一个变量,这个变量的值就是一个函数. 规则1:如果一个函数,是某个对象的key 值,那么,this就指向这个对象. 这个规则很好理解: var a = function(obj) { a…
三元操作符 如果使用if...else语句,那么这是一个很好节省代码的方式. Longhand: const x = 20; let answer; if (x > 10) { answer = 'is greater'; } else { answer = 'is lesser'; } Shorthand: const answer = x > 10 ? 'is greater' : 'is lesser';const big = x > 10 ? " greater 10&…
1.使用var声明变量 如果给一个没有声明的变量赋值,默认会作为一个全局变量(即使在函数内赋值).要尽量避免不必要的全局变量. 2.行尾使用分号 虽然JavaScript允许省略行尾的分号,但是有时不注意的省略,会导致不必要的错误.建议在可用可不用行尾分号的地方加上分号. 3.获取指定范围内的随机数 var getRandom = function(max, min) { min = arguments[1] || 0; return Math.floor(Math.random() * (ma…
1.‘debugger;’ 除了console.log,debugger就是另一个我很喜欢的快速调试的工具,将debugger加入代码之后,Chrome会自动在插入它的地方停止,很像C或者Java里面打断点.你也可以在一些条件控制中插入该调试语句,譬如: if (thisThing) {    debugger; } 2.将Objects以表格形式展示 有时候我们需要看一些复杂的对象的详细信息,最简单的方法就是用console.log然后展示成一个列表状,上下滚动进行浏览.不过似乎用consol…
一般认为:严格模式下this不允许指向全局对象.是函数体是否处于严格模式! 如:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 需要说明的是:本身指向全局的this是没有问题的. 示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <tit…
编程过程中,着实十分困扰this的指向性,经过查阅一番资料,终于搞清楚了,在这里总结一下,全文分为以下三个部分: 什么是this指针? this指针指向哪里? 何时使用this? 一 什么是this指针? 在JavaScript中,this指针是在创建函数时,由系统默认生成的两个隐式参数之一(另一个是arguments). this指针指向与该函数调用进行隐式关联的一个对象,该对象被称为“函数上下文”. 要想成功的使用this,就必须搞清楚在不同情形下,this指针指向什么“函数上下文”,下面将…
1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高. var myVar = "3.14159", str = ""+ myVar,// to string int = ~~myVar, // to integer float = 1*myVar, // to float bool = !!myVar,…
这篇文章适合任何一位基于JavaScript开发的开发者.我写这篇文章主要涉及JavaScript中一些简写的代码,帮助大家更好理解一些JavaScript的基础.希望这些代码能从不同的角度帮助你更好的理解JavaScript. 三元操作符 如果使用if...else语句,那么这是一个很好节省代码的方式. Longhand: const x = 20; let answer; if (x > 10) { answer = 'is greater'; } else { answer = 'is l…
常用javascript小案例 样式调节 //注: 这个可以控制td中的字段成行显示 #modelInfos td,th { white-space: nowrap; } //文本输入框随着内容尺寸往下变大,在input框中加入这两个属性,然后就可以控制文本输入框的大小尺寸随着内容而变 onpropertychange="this.style.height=this.scrollHeight + 'px'" oninput="this.style.height=this.sc…