全局范围内函数调用方法调用调用构造函数显式的设置 this常见误解方法的赋值表达式JavaScript 有一套完全不同于其它语言的对 this 的处理机制。 在五种不同的情况下,this 指向的各不相同。全局范围内this;当在全部范围内使用 this ,它将会指向全局对象。函数调用foo();这里 this 也会指向全局对象。方法调用test.foo();这个例子中, this 指向 test 对象。调用构造函数new foo();如果函数倾向于和 new 关键词一块使用,则我们称这...
说到 javascript 中的定时器,我们肯定会想到 setTimeout() 和 setInterval() 这两个函数。本文将从事件循环(Event Loop) 的角度来分析两者的工作原理和区别。 setTimeout() MDN对 setTimeout 的定义为:在指定的延迟时间之后调用一个函数或执行一个代码片段。 语法 setTimeout 的语法非常简单,第一个参数为回调函数,第二个参数为延时的时间。函数返回一个数值类型的ID唯一标示符,此ID可以用作 clearTimeout 的参数...
双向绑定的思想双向数据绑定的思想就是数据层与UI层的同步,数据再两者之间的任一者发生变化时都会同步更新到另一者。双向绑定的一些方法目前,前端实现数据双向数据绑定的方法大致有以下三种:1.发布者-订阅者模式(backbone.js)思路:使用自定义的data属性在HTML代码中指明绑定。所有绑定起来的JavaScript对象以及DOM元素都将“订阅”一个发布者对象。任何时候如果JavaScript对象或者一个HTML输入字段被侦测到发生了变化,我们将代...
前言大家都知道Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。本文仅探究几乎所有Vue的开篇介绍都会提到的hello world双向绑定是怎样实现的。先讲涉及的知识点,再参考源码,用尽可能少的代码实现那个hello world开篇示例。一、访问器属性访问器属性是对象中的一种特殊属性,它不能直接在对象中设置,而必须通过defineProperty()方法单独定义。var obj = { };// 为obj定义一个名为hello的访问器属性Object.d...
函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数 下面是一个最常见的自执行函数:// 传统匿名函数 (function() { alert(hello); })(); 这段代码的执行效果就是在页面再载入时弹出:"hello" 是什么促使它自动执行的?,来看下面的代码// 在传统写法上去掉小括号,并在前面加上运算符 ~,!,+,- ~fun...
简介n 是 node 的一个模块,可以用它来管理 node 的各种版本。类似 Python 中的 pyenv 和 Ruby 的 rbenv。n 的作者是著名的TJ大神。通过 npm 安装 n:$ npm install -g n 查看当前 node 版本:$ node -v v4.2.4 通过 n 安装指定版本:$ n 4.4.4 install : node-v4.4.4mkdir : /opt/node/n/versions/node/4.4.4fetch : https://nodejs.org/dist/v4.4.4/node-v4.4.4-linux-x64.tar.gz ###################################100.0%...
对象创建:当一个函数对象被创建时候,Function构造器产生的函数对象会运行类似这样的代码:this.prototype={constructor:this};假设函数FF用new方式构造对象时,对象的constructor被设置成这个F.prototype.constructor如果函数在创建对象前修改了函数的prototype,会影响创建出来对象的construtor属性如:function F(){};F.prototype={constructor:1111};var o=new F();//o.constructor===‘1111’ true继承原理:JavaScript中的继...
看下面内容之前,看一小段代码,如果读者能说出代码的用意,那就没必要往下看了,因为你都懂。setTimeout(function(){ /* Some long block of code… */ setTimeout(arguments.callee, 10); }, 10); setInterval(function(){ /* Some long block of code… */ }, 10);计时器是一个很牛X的东西,但是很多人其实只限于知道它的语法,缺乏对其原理的认识。计时器通过设定一定的时间段(毫秒)来异步的执行一段代码。因为 Javascript 是...
移动端页面开发适配 rem布局原理什么是适配,为什么要适配我们拿到的设计图一般是以640,750,1080分辨率为基准设计的,而现在的手机终端各式各样,分辨率不同,逻辑像素不同 ,视口不同,所以为了让我们的页面在每个设备上都可以良好的展示,那么就需要为这些设备做统一的处理,这个过程就称为移动端适配。需要知道的一些概念:物理像素(physical pixel)一个物理像素是显示器(手机屏幕)上最小的物理显示单元,可以理解为我们平时说...
1. 前言最近在看司徒正美的《JavaScript框架设计》,看到异步编程的那一章介绍了jsdeferred这个库,觉得很有意思,花了几天的时间研究了一下代码,在此做一下分享。异步编程是编写js的一个很重要的理念,特别是在处理复杂应用的时候,异步编程的技巧就至关重要。那么下面就来看看这个被称为里程碑式的异步编程库吧。2. API源码解析2.1 构造函数这里使用了安全的构造函数,避免了在没有使用new调用构造函数时出错的问题,提供了两个...
在线编辑器在我们日常的项目开发中非常有用(如新闻系统),它可以方便地实现文章的在线编辑,省掉了FrontPage等工具。那么是怎样实现浏览器在线编辑功能的呢? 首先需要IE的支持,在IE5.5以后就有一个编辑状态. 就是利用这个编辑状态,然后用javascript来控制在线编辑的。 首先要有一个编辑框,这个编辑框其实就是一个可编辑状态的网页, 我们用iframe来建立编辑框。 并且在加上javascript代码来指定HtmlEdit有编辑...
只有这一段事件触发语句全搞定 onclick='this.src="GifCode.asp#"+new Date().getTime()' // GifCode.asp 验证码的图片 事件: onclick='this.src="GifCode.asp#"+new Date().getTime()' 呵呵! 很简单很简单很简单,没想到吧 同理可以在ASP.NET PHP JSP 中运用
firefox下实现可拖动层代码www.gxlcms.com 拖动层效果代码 var obj=0; var x=0; var y=0; var ie = (navigator.appVersion.indexOf("MSIE")!=-1);//IE var ff = (navigator.userAgent.indexOf("Firefox")!=-1);//Firefox function find(evt,objDiv){ obj = objDiv if (ff){ x = document.documentElement.scrollLeft + evt.layerX; y = document.documentElement.scrollTop + evt.layerY; if (document.documentElement.scrollTop ...
有兴趣的朋友搜索"百度 popup"就好了,已经有人给出了注释,强大。 最有意思的是用javascript获取和设置style DOM标准引入了覆盖样式表的概念,当我们用document.getElementById("id").style.backgroundColor 获取样式时 获取的只是id中style属性中设置的背景色,如果id中的style属性中没有设置background-color那么就会返回空,也就是说如果id用class属性引用了一个外部样式表,在这个外部样式表中设置的背景色,那么不好意思docu...
在提交表单时经常需要对一些必填字段进行判断是否为空, 如果是文本框那很好办,大家都会写,但是如果遇上多个raido,checkbox 必选一个或多个就稍微麻烦一点了。 通过取整个表单的元素集合,我们可以对其进行如下处理: 代码如下:var msg=""; var obj=""; var flag=false; for (var i=0;i<document.frmsignup.elements.length;i++){ var e = document.frmsignup.elements[i]; if (e.name == source){ if (e.checked==false) flag=...