JS中的对象联姻:call方法
2016-07-12 22:21
471 查看
<script type="text/javascript"> var me = function (){ this.money = 100; this.show = function(){ alert("我有"+this.money+"块"); } } var mm = function(){ this.money = 20; } // 实例化mm var mm1 = new mm(); alert(mm1.money); //20 // 联姻 me.call(mm1); mm1.show(); //我有100块 </script>
分析:mm本来的money值是20,但被me.call之后,也可以调用me里的方法了,并且同名属性的值也被覆盖了。
一般的写法:
var me = function (){ this.money = 100; this.show = function(){ alert("我有"+this.money+"块"); } } var mm = function(){ this.money = 20; this.age = 18; // 联姻 me.call(this); } // 实例化mm var mm1 = new mm(); alert(mm1.age); //18 mm1.show(); // 我有100块
关于同名属性覆盖:
var me = function (){ this.money = 100; this.show = function(){ alert("我有"+this.money+"块"); } } var mm = function(){ // 联姻 me.call(this); this.money = 20; this.age = 18; } // 实例化mm var mm1 = new mm(); alert(mm1.age); //18 mm1.show(); // 我有20块
在mm函数内部,
me.call(this)在一开始执行了,后面的
this.money=20覆盖了所以下面mm1.show()打印结果为20
相关文章推荐
- backbonejs
- 谈谈Js内存泄漏的那点事儿
- createjs碰撞检测localToLocal的用法
- JS判断单选框是否选中
- Js判断是否有属性
- Js 替代
- Js解析json
- js解析XML
- fastJSON---List转String-String转数组
- js异步加载
- 在web服务器上运行jsp文件
- 时间js转换方法Date("149...") 转成 2016-7-12 21:23:34 009
- jsp-九大内置对象
- web.xml、JSP原理、指令
- $.getjson()【笔记】
- JavaScript实现Tab标签页切换的最简便方式
- JavaScript
- extjs4.2点击树形菜单生成tab页并访问发送请求
- 其实你根本就懂闭包
- json格式转化 序列化 反序列化