《javascript高级程序设计》构造函数创建对象章节-147页:在全局作用域中定义的函数只能被某个对象调用
来源:互联网 发布:软件测试的简历 编辑:程序博客网 时间:2024/06/03 12:50
在js高程这本书中第147页提到:在全局作用域中定义的函数实际上只能被某个对象调用,这让全局作用域有点名不副实。
自己的理解:
javascript中在全局作用域中定义的函数只能被某个对象调用:这句话的意思是,你在全局作用域中定义了一个函数sayName,可是这个函数是针对Person对象定义的,只有Person对象调用了这个函数(如果你定义了其他对象,比如Car,Book或Home,这些对象都不会有sayName方法,都不会去调用它)。既然只有Person会用到sayName,为什么要在全局作用域中定义sayName呢,这不是很浪费么,而且也不安全。(这里原文中确实对“对象”、“实例”、“类”这3个概念有点混淆,不过不妨碍理解。)
只有会被所有对象用到的才需要用全局,但是这种情况严格上来讲是不存在的,除了js自带的。我们知道,Global对象就是ECMAScript中的全局对象,反映在javascript中,是用window对象实现的,比如常用的属性:undefined,NaN,方法eval(),encodeURL()等,其实都是window.undefined,window.eval();所以尽量别定义全局变量,否则很容易与其他的代码冲突(你不能保证很多人一起工作时,别人不会定义一个相同名字的全局变量),这也是为什么一般每个人对自己的代码外层都要用闭包创建一个块级作用域。
0 1
- 《javascript高级程序设计》构造函数创建对象章节-147页:在全局作用域中定义的函数只能被某个对象调用
- JavaScript高级程序设计之面向对象的程序设计之创建对象之 构造函数模式第6.2.2讲笔记
- 全局对象构造函数的调用时机
- JavaScript高级程序设计之面向对象的程序设计之创建对象之组合使用构造函数模式和原型模式 第6.2.4讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之寄生构造函数模式 第6.2.6讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之稳妥构造函数模式 第6.2.7讲笔记
- JavaScript构造函数创建对象
- JavaScript 创建对象 构造函数
- C++的全局对象,静态对象构造函数是怎样被调用的
- JavaScript作用域、上下文环境、函数对象的定义与调用、匿名函数的定义与调用、闭包
- JavaScript高级程序设计之面向对象的程序设计之继承之借用构造函数第6.3.2讲笔记
- JavaScript----全局函数、对象
- javascript 构造函数方式定义对象
- javascript (对象定义) 构造函数模式
- 使用构造函数创建JavaScript对象,创建JavaScript对象
- javascript 函数作用域中的关键字this
- JavaScript 创建对象--构造函数模式
- JavaScript 创建对象---寄生构造函数模式
- Maven搭建Struts2+Hibernate4+Spring4+Shiro(安全篇)之子项目(基于角色,权限的访问控制)
- hdu 3564(线段树+LIS)
- 关于使用android studio时的一些错误整理
- Activity生命周期中onStart和onResume、onPause和onStop有什么不同
- 25.数组指针和函数指针及typedef
- 《javascript高级程序设计》构造函数创建对象章节-147页:在全局作用域中定义的函数只能被某个对象调用
- 【java虚拟机系列】java中类与对象的加载顺序
- android编译系统
- 一个正则表达式的看法(?:)
- 【dji sdk】mobile sdk开发
- 为什么世界上只有13个root域名解析服务器
- Linux环境下的部分常用vi命令
- springMVC框架整合--(Spring+SpringMVC+hibernate)
- 2016开始了