读JavaScript语言精粹后部分知识的总结
2016-07-05 15:49
357 查看
不同的函数调用方式
方法调用模式
一个函数B是另一个对象A的属性时,通过A.B来调用函数B的方式我们称之为方法调用模式A= { a:'a vairalbe', B: function() { // } } A.B();
这种调用模式中,B函数中的this指向调用它的对象,A
函数调用模式
若函数B并非是哪个对象的属性,单纯通过B()来调用,则该方法为函数调用。如
var A = function () { var a = 'a variable'; var B = function() { /// }; B(); }; A();在这种情况下,B中的this并不指向其外层函数this变量,而是指向全局对象。这是js语言设计上的一个错误,会为开发带来很多麻烦,有一种方法,来改善这一问题。我们创建一个变量,来手动指向外层函数的this变量。
myObject.double = function() { var that = this;//解决方法 var helper = function() { that.value = add(that.value, that, value); }; helper(); }; myObject.double(); document.writeln(myObject.value);//6
构造器调用模式
由于很多人还是习惯基于类的对象,而js是基于原型的对象,因此js提供了一套类似于基于类的语言的对象构建语法,通过new 关键字创建对象。Apply调用模式
每个函数都拥有一个自己的apply方法。可通过该方法调用指定函数以及制定this指向的对象。减少全局变量污染
js中可以随意定义全局变量,但由于它会削弱程序的灵活性,建议尽量少的使用。其实可以尽量将需要声明为全局变量的变量统一放在一个唯一的全局变量中,这样在满足了需求的同时,还减少了全局变量的使用。
var MYAPP = {};//唯一的全局变量 MYAPP.stooge = { firstName: 'joe', lastName: 'Howard' }; MYAPP.flight = { airline: 'Oceanic', number: 815, departure: { IATA:'SYD', TIME: '2004-09-22 14:55', } };
相关文章推荐
- js 判断是不是手机访问
- javascript barcodescanner插件 可以扫描QR和PDF417码
- 移动应用开发跨平台工具imag.js入门
- JS 动态操作表格
- 46种常见的浏览器兼容性问题大汇总
- JS实现环形进度条(从0到100%)效果
- echarts3 -arcgis echarts.js修改
- js数组的管理[增,删,改,查]
- javascript事件机制研究
- JavaScript之全面理解面向对象的JS
- JSON对象和字符串互转
- js获取Url,域名,端口号等
- JSON.stringify 语法实例讲解 字符串
- javascript事件
- JS取date的前一天时间
- 结合代码图文讲解JavaScript中的作用域与作用域链
- 小代码 项目使用 文字逐渐打印 循环打印 一字一字地展现 javascript js
- js中所有的变量声明var当被悬置到函数的顶部
- javascript中forEach
- 使用js模板引擎心得