JavaScript中的函数是可以动态改变的
来源:互联网 发布:linux ssh服务宕了 编辑:程序博客网 时间:2024/06/06 00:28
JavaScript中用{}括起来的就是一个对象,在定义一个对象的时候,跟其他语言类似,有成员变量和成员方法。但是,不同的是,成员方法的实现是可以变动的,对于这一点,我到今天才知道,或许有很多人也是(在耐心看完这篇分享后)。
<html> <head> <script type="text/javaScript"> //定义一个变量 var a = { hello:function(){ alert("这是我定义最初的样子"); } //首次调用 a.hello(); a.hello=function () { alert("我第一次改变了"); }; a.hello(); //第二次调用 (function($){ $.hello = function (){ alert("这是第二次改变"); } })(a); //第三次调用 a.hello(); </script> </head></html>
执行的结果就是依次打印出了
这是我定义最初的样子
我第一次改变了
这是第二次改变
因为并不是太复杂,不需要拆解下来一个个说明,这里就一下子贴出了整个代码。
其实看起来也容易明白,就是三种形式而已。但是这三种形式,追随到本来源,都还是一致的,javascript允许变量在任何时候赋予任何值,并且,函数其实也是一个对象。
//在后面我又加上了这么一段 a = "hello"; alert(a); try { a.hello(); } catch (e) { alert("我再也不能调用a.hello()方法了"); }
执行的结果应该很清楚了
hello
我再也不能调用a.hello()方法了
可能不理解的或许是这么一段
(function($){ $.hello = function (){ alert("这是第二次改变"); } })(a);
这是什么鬼?
其实这是我看到一个博客中对他进行了说明我才理解下面我把原文贴出来,下面的内容和不是本文的一部分,转载于网络.
上面的实现代码,如果您一眼就能看懂,证明您是经常封组件的大虾了,下面的就不用看了。如果看不懂,也没关系,我们将代码拆开详细看看里面是什么鬼。
首先看看我们最常看到的如下写法:
(function ($) { //....封装组件逻辑})(jQuery);
初初看到这种用法,博主也是狂抓,这是什么鬼嘛,四不像啊。使用多了之后才知道原来这就是一个匿名函数的形式。将它拆开来看如下:
var fn = function($){ //.....组件封装逻辑};fn(jQuery);
也就是说这种写法就表示先定义一个方法,然后立即调用这个方法,jQuery相当于实参。打开jquery.js的原文件可以看到,jQuery是这个文件里面的一个全局变量。
0 0
- JavaScript中的函数是可以动态改变的
- 命运是可以改变的:
- 容貌是可以改变的
- 可以改变的是态度
- javaScript 闭包函数 (实现动态改变onClick的动作)
- 为什么动态库中的全局变量是可以用的?
- javascript 中的函数是覆盖的
- javascript中的动态函数
- Javascript函数既可以实例化成对象也可以是可用的函数
- javascript动态的改变页面的字体大小
- javascript动态改变style里的样式
- javascript 动态改变层的大小
- 通过javascript动态改变按钮的值
- 【javascript】动态改变样式
- javascript 动态改变onclick事件触发函数代码
- 实现一个可以动态改变的N层导航树
- 用javascript改变onclick调用的函数
- javascript改变表单中的选中的文本
- java程序员16年度总结
- 第三章的小知识点
- python2.7中编码问题以及txt文件读写的注意事项
- PAT BASIC LEVEL 1004. 成绩排名 (20)
- SVG-Android开源库——SVG生成Vector资源文件的编辑预览工具
- JavaScript中的函数是可以动态改变的
- Error:Execution failed for task ':arc-1-8:processDebugManifest'. > Manifest merger failed : Attribut
- More Effective C++学习笔记(2)-运算符
- 浅谈java异常[Exception]
- 2017年1月ACM留校培训——二分专题
- 记录生活,记录学习----我的2016
- 17 - 02 - 22 计算机网络(43)(VPN概述)
- Jetty服务器的简介
- Android 笔记之Log