解析对象体内与方法体内引用内部方法的不同
2016-04-02 11:42
309 查看
/*对象体内*/ var a={ init:function(){a.func1();}, //这里要加this或者对象a,但方法体内同等格式不用,思考这其中的差别 func1:function(){alert(1);} } a.init(); //执行 /*方法体内*/ function b(){ this.init=function(){func1();}; //这里可以调用到func1,原因在于对象体没有开辟作用域的概念,它自己依赖于自身所在的作用域,所以不能在对象体中直接找到func1. function func1(){ alert(1); } } new b().init();//执行
总结,对象体没有开辟作用域的概念,它自己依赖于自身所在的作用域,所以不能在对象体中直接找到func1,需要通过作用域中的自己来找到func1,方法体则会在定义时开辟一段作用域(执行上下文),以供方便获取活动对象。
相关文章推荐
- 队列在Android中的使用
- web.xml文件中url-pattern匹配规则(学习笔记)
- Android-UI布局2
- eclipse快捷键以及使用技巧大全 (其中shift+ctrl+F 格式化 会和搜狗输入法冲突,把输入法这个关了)
- 神经网络入门(连载之一)
- 【Uva11324】The Largest Clique【SCC】【最长路】【有向图最大团】
- 手机市场远远没有饱和
- POJ_2766_Laserbox_CE
- 设计模式-装饰模式
- linq和EF查询的用法和区分
- Android MTK keyguard横屏状态锁屏崩溃报错
- Java中byte与16进制字符串的互相转换
- Android 动画原理详解
- 6.9 Android Framework - ClipDrawable
- vs运行时候冒了这个错:无法启动IIS Express Web 服务器~Win10
- BZOJ 2326: [HNOI2011]数学作业
- Linux _ pthread 线程 信号
- 219. Contains Duplicate II
- CF 626 B. Cards
- 有关素数的基础算法