代码如下:// 下面是OOP用的方法 // 这样很猥琐……因为JS并不是OOP语言…… // 但伟大的伍迷指引我们来这么干 // Belldandy会保佑用这些方法来OOP的人的…… Function.prototype.inherits = function(base){ //派生关系,保留了prototype //只支持单派生 this.prototype = new base(); return this; } Function.prototype.create = function(){ //类的创建器,和用new等价 //JS不支持在构造器用call和apply,所以…… //Belldandy啊...
但javascript中并没有类概念,所谓的类也是模拟而来,通过函数加闭包模拟出类成员及私有成员(关于闭包可以参见跨越边界: 闭包)。这里我们将用比较平实的方式来了解一下javascript中的”类”,避开一些生硬的原理。 既然是用function来模拟类,所以编写代码创建类的关键字还是function。我们创建一个座标点类。function Point() { this.X = 0; this.Y = 0; }; var zeroPoint = new Point(); alert("当前座标值(...
好程序不是写给computer的,而是写给human的。遇到复杂功能,应该想着把它简化、组件化,把小功能封装成小组件,小功能块可以任意的组合得到千变万化的复杂功能。function就可以帮助我们把功能进行封装。那什么是封装呢。要我说,只要把具体实现给打包,对外提供调用接口那就是封装,方法也好、类也好就做了这些事。 javascript中的function可以用来创建方法、也可以用来创建类,实际上我们可以认为是用function来模拟出的类(说到类...
Function instanceof Object 和 Object instanceof Function 都是 true 1。我们可以认为 Object 是一个特殊的“类”,而这里的“类”即:Function 于是便可以理解为: Object = Function () {} 或 Object = new Function(); 即:Object 是 Function 的一个实例,所以,Object 原型链中便包含 Function.prototype,得出: Function.prototype.isPrototypeOf(Object) 为 true 2。同时,js中,所有对象(不包括js语言外部对象)都可视...
(1)声明一个表达式变量,并定义该变量的表达式。如: 代码如下: var func = function() { /*body code*/ } (2) 定义一个function表达式,并指定该表达式的标识。如: 代码如下: function func() { //body code } (3) 使用JavaScript内置Function对象构造。如: 代码如下: var func = new Function("/*parameters*/","/*body code*/"); 声明变量定义与使用function表达式标识定义是有区别的。我们知道,function在发生传递时...
如今的JavaScript再也不是以前被当做玩具的在网页上运行的花哨的脚本了。JavaScript已经逐渐标准化,作为一门真正的编程语言广泛地应用在Web开发上。因此,越来越多的人开始重新认识这门脚本语言,并在不断地探索关于JavaScript核心思想和实现原理,过程中遇到了一些非常混淆的问题。本文着重解释一个比较常见但是非常容易使开发人员或者是初学JavaScript的人非常混淆的问题,那就是两个核心构造函数Object和Function,他们之间到底...
Javascript中创建对象的语法是在new运算符的后面跟着一个函数的调用。如 代码如下: var obj = new Object(); var date = new Date(); 运算符new首先创建一个新的没有任何属性的对象,然后调用该函数,把新的对象作为this关键字的值传递。 代码如下: var date = new Date()的伪代码的实现就是 var obj = {}; var date = Date.call(obj); 构造函数的作用就是初始化一个新创建的对象,并在使用对象前设置对象的属性。如果定义自己...
如下: 代码如下: function Student() { //定义类Student中的字段,并赋予初值,但此字段的访问权限是public this.studentNo = s001; this.studentName = 小明; this.sex = 男; //定义类Student中的方法updateStudentName ,用于修改studentName 值 this.updateStudentName = function(studentName) { this.studentName = studentName; } } 如上代码便已定义了一个Student类,并包含studentNo ,studentName , sex 3个字段,方法...
代码如下: function fn() { for(var i = 0;i < arguments.length;i++){ alert("第"+(i+1)+"个参数的值:"+arguments[i]); } } var str = {ni}; str.replace(/\{([a-z]+)\}/ig, fn); 根据多次测试由输出结果可以得出fn中: 第一个参数为匹配到的字符串,如{wo}和{ni}; 第二个参数可以有0-N个,为第一个参数中匹配到一个括号正则的字符串,如第一个参数中的wo和ni,能匹配([a-z]+), 括号有几组,则参数有几个; ...
话说在楼猪理解和实践能力尚欠火候的时候,在这篇里曾经照搬了李战老师不少东西写在自己的博客里作为“知识储备”。这一次还是不能免俗。在翻到第5章的时候,被开篇第二段话深深吸引和折服:“函数具有对象的全部特征,你完全可以把函数当对象调用。其实,函数就是对象,只不过比一般的对象多了一个括号“{}”操作符,这个操作符用来执行函数的逻辑,即函数本身还可以被调用,一般对象却不可以被调用,除此之外完全相同”。寥寥数语...
这里实际上是匿名函数 function(arg){...} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})(param) 这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数 而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery var fn = function($){....}; ...
注:理论过于深入,本人不改保证所有的理论都是正确的,但经过多方测试还未发现实际代码与理论冲突的问题。如有错误,望高人指点! Function 首先回顾一下函数对象的概念,函数就是对象,代表函数的对象就是函数对象。所有的函数对象是被Function这个函数对象构造出来的。也就是说,Function是最顶层的构造器。它构造了系统中所有的对象,包括用户自定义对象,系统内置对象,甚至包括它自已。这也表明Function具有自举性(自已构...
SUB和FUNCTION有什么不同呢,他们的语法应该怎么构成? Sub:过程; Function:函数,可以带返回值 语法: Sub SubName(参数1, 参数2,...) .... End Sub Function FunctionName(参数1, 参数2,...) ... FunctionName = 返回值 End Function 调用方法: Sub直接用 SubName 参数1, 参数2,... Function如果不要返回值,用 FunctionName 参数1, 参数2,... 如果要返回值,则 Result = FunctionName(参数1, 参数2,...) 语法是这样,这是对...
javascript中最有特色而又让你困惑的function算一个了 下面看一下常用操作 代码如下: function doit(){ ..... } doit(); javascript中的函数我们可以把它当作方法使用 代码如下: var obj=new Object(); obj.say=function(){ ..... } obj.say(); 而function实际上就是对象(即Function类型的实例) 代码如下: function result(num1, num2) { return num1 + num2; } var result = new Function("nu...
情况1:eval里没有function,直接执行: eval("alert('ss');");//所有浏览器正确均输出 情况2:eval里有function,function立即执行: eval("(function(){alert('ss');})();");//所有浏览器正确输出 情况3:eval里有function,使用变量保存function引用并调用该function: var f=eval("(function(){alert('ss');})"); f();//IE下报错:缺少对象 其他浏览器正常 当在eval定义一个function并返回给变量时,IE报错:缺少对象。可见IE下...