写这个话题单纯是给自己做笔记了,不然老忘记。 第一种方法: function fn1(x) { this.x = x; } function fn2(x, y) { this.tmpObj = fn1; this.tmpObj(x); delete this.tmpObj; this.y = y; } 第二种方法:call()或apply() function fn1(x) { this.x = x; } function fn2(x, y) { fn1.call(this, x); this.y = y; } 第三种...
注意:以下的输出都在浏览器的控制台中<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>闭包</title> </head> <body> <script type="text/javascript"> /*** 利用闭包实现* 这个函数给对象o增加了属性存储器方法* 方法名称为get<name>和set<name>。如果提供了一个判断函数* setter方法就会用它来检测参数的合法性,然后再存储它* 如果判定函数返回false,setter方法就会抛出一个异常** 这个函数具有getter和setter函数*...
1. 对象冒充 对象冒失是在函数环境中使用this关键字后发展出来的一种继承方式。其原理如下:构造函数使用this关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,所以可使ClassA的构造函数成为ClassB的方法,然后调用它。ClassB就会收到ClassA的构造函数中定义的属性和方法。例如,用下面的方式定义ClassA和ClassB: function ClassA (sColor) { this.color = sColor; ...
关键信息如下。javascriptfunction Encrypt() { var key = CryptoJS.enc.Utf8.parse(‘8080808080808080‘); var iv = CryptoJS.enc.Utf8.parse(‘8080808080808080‘); var varIn = document.getElementById("txtIn").value; var varOut = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(varIn), key, { keySize: 128 / 8, ...
js的函数调用会免费奉送两个而外的参数就是 this 和 arguments 。arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度。书上有说4中调用方式:方法调用模式函数调用模式构造器调用模式apply调用模式下面我们来看看一些实例更好理解。1:方法调用模式。请注意this此时指向myobject。/*方法调用模式*/ var myobject={ value:0, inc:function(){ alert(this.va...
加下划线不是js要求的,是程序员约定俗成的。通常变量前加下划线表示“私有变量”。函数名前加下划线表示“私有函数”。为什么我加引号,因为“私有”这个词不是js的官方说法,js也根本没有“私有变量”这种东西,只是程序员之间模仿其他有私有变量的语言的一种约定俗成的说法。也就是“你懂的”。只为代码维护方便,没特别意义。不是说加了下划线就有本质变化了原文:http://www.cnblogs.com/imeiling/p/6409205.html
对于初学的人来说,代码效果和预期的不符合,是一件很心累的事情,因为不知道如何检查。 找别人,不认识,不知道找谁,身边有没有认识的人学前端,非常痛苦,如果学前端有什么痛苦的,那么这就算一个。记得以前,自己还是一个刚开始写的新手,学着视频写代码,然后,结束之后,一测试,发现出错,怎么办,心累,只能自己回去定格画面,一行一行排错,还好人家有代码显示着,不然,真不知道怎么办。 直到很后来,经历了那么多的错误...
数组创建JavaScript中创建数组有两种方式,第一种是使用 Array 构造函数:?123vararr1 = newArray(); //创建一个空数组vararr2 = newArray(20); // 创建一个包含20项的数组vararr3 = newArray("lily","lucy","Tom"); // 创建一个包含3个字符串的数组创建数组的第二种基本方式是使用数组字面量表示法:?123vararr4 = []; //创建一个空数组vararr5 = [20]; // 创建一个包含1项的数组vararr6 = ["lily","lucy","Tom"]; // 创建一个包含...
[From] http://www.jb51.net/article/44726.htm Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下:复制代码代码如下:if (myObj不存在){ 声明myObj; }你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javasc...
JavaScript常见排序以下两个函数是排序中会用到的通用函数,就不一一写了function checkArray(array) {if (!array || array.length <= 2) return } function swap(array, left, right) {let rightValue = array[right]array[right] = array[left]array[left] = rightValue }View Code冒泡排序冒泡排序的原理如下,从第一个元素开始,把当前元素和下一个索引元素进行比较。如果当前元素大,那么就交换位置,重复操作直到比较到最后一...
在学习javascript过程中,遇到过很多关于数组和字符串的一些操作。之前也总结了不少方法,可是一遇到自己用的时候,就忘了。不是忘了方法叫什么名,就是忘了方法的参数有什么,返回的是什么? 现在就再次总结一下: 首先是字符串的方法: 1.字符方法: charAt()---功能:返回指定位置的字符;语法:string.charAt(index) index超出范围返回空字符串1 var str = ‘Hello‘; 2 var ...
C#中有很多易混淆的关键词,例如delegate,Func, Action和 Predicate。Func, Action和 Predicate本质上都是delegate,下面看一下delegate概念。1 delegate概念 delegate本质上就是一个指向函数的指针,可以指向不同的函数,只要函数的签名和代理一致即可。2 delegate应用 其实Func, Action, Predicate等都是delegate,只是特殊的delegate而已。delegate的巧妙应用,可以大大简化代码和提高灵活性。下面有一段Javascript代码,...
把JavaScript文件放在head中标准方法是把JavaScript文件放到head标签内。<head><scripttype="text/javascript"src="dreamdu.js"></script></head>如果浏览器不支持JavaScript,将忽略script标签里面的内容,可以避免使用<!-- ... //-->(内部引用)。当JavaScript有任何HTML实体时,也不需要使用CDATA标签了(因为JavaScript代码不直接在HTML文件中)。JavaScript文件必须使用js为文件后缀。把JavaScript文件放在body前为防止网页加载缓...
var htmls = new Array();htmls.push("<tr class=‘otherinfotr‘>");htmls.push("<td>姓名</td>");htmls.push("<td>");htmls.push("<input type=‘text‘ name=‘username‘ />");htmls.push("</td>");htmls.push("<td>电话</td>");htmls.push("<td>");htmls.push("<input type=‘text‘ name=‘phone‘ />");htmls.push("</td>");htmls.push("</tr>");$(‘.otherinfotr:last‘).after(htmls.join(‘ ‘));原文:http://www.cnblo...
前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议”这本书的时候看到这个比较好的方法,在此小记一笔以备在以后的开发中使用。1:如下所示是我编写的演示代码<!DOCTYPE html><html><head><meta charset="utf-8"/><title>Index Page</title><script type="text/javascript">/*安全检测JavaScript...