都是对prototype的赋值,语义上没什么区别。差别在于对属性、方法的检索上,javascript的对象属性、方法的搜寻的过程是:
泸州网站建设公司创新互联公司,泸州网站设计制作,有大型网站制作公司丰富经验。已为泸州1000+提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的泸州做网站的公司定做!
1、对象本身
2、对象prototype
3、对象prototype的prototype,类推。。。
javascript类的基础的处理上,一般有两种方式,一种引用原型的方式,另外是复制原型的方式,差别从名称上就能看出来,引用原型是直接引用父类的原型:
Function.prototype.classExtends = function ()
{
var F = function() { };
var class = new F();
class.prototype = this.prototype;
class.prototype.Super = this;
class.prototype.constructor = this;
return class;
}
function classA() {
};
var classB = classA.classExtends();
复制原型比较简单,是从父类的prototype复制所有的方法、属性到派生类的prototype,派生类和基类的prototype没有直接的引用关系,这部分就不给代码了。
假定数组长度为len,那么随机表达式可写为:
Math.round(Math.random() * (len-1))
思路,先将随机数的范围定义为Math.random() * (len-1),但这结果大部分情况下都是小数,所以要进行取整操作,于是还要进行四舍五入操作Math.round()。
f 如果是 true,!f 就是 false,再 !!f 就是 true
那如果 f 是 false,就反过来,!f 变 true,!!f 变 false
( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念。
函数声明:
function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。
函数表达式:
var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。
匿名函数:
function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
函数声明和函数表达式不同之处在于:
一、Javascript引擎在解析javascript代码时会‘函数声明提升'(Function declaration Hoisting)当前执行环境(作用域)上的函数声明。
而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。
二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用。
在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式。
消除了javascript引擎识别函数表达式和函数声明的歧义,告诉javascript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立即执行函数的代码。
扩展资料
作用:
javascript中没用私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉。
根据javascript函数作用域链的特性,可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个“容器”。
“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。
JQuery使用的就是这种方法,将JQuery代码包裹在( function (window,undefined){…jquery代码…} (window)中,在全局作用域中调用JQuery代码时,可以达到保护JQuery内部变量的作用。
script language="javascript"
document.write("aaa\ngg");
document.write("aaa\fgg");
/script
要这样写吧!
应该是SPUARE函数,即第一函数的名字;第二个函数的第一参数是函数名、第二个参数是值;第三个函数调用第二个函数。供参考!