研究到这儿,竟然出现了一个面试题目

var a = {
name : '小明'
}; var b = a; b.name = '小强'; alert( a.name );

结果必然是“小强”,原因是对象的引用,两个用的是一个地址,所以只要这个地址里的东西变了,那个两个对象弹出来的自然也要变。

故而这儿存在的是上篇同样的问题。

var a = {
name : '小明'
};
var b = {};
extend( b , a );
b.name = '小强';
alert( a.name );
function extend(obj1,obj2){
for(var attr in obj2){
obj1[attr] = obj2[attr];
}
}

因此上篇的解决方案就是将 extend的方法加上,并且将

createStar.prototype = createPerson.prototype;   改成 extend(createStar.prototype,createPerson.prototype);

还有一个面试题目:
var a = [,,];
var b = a;
b.push();
alert(a); // 1,2,3,4 var a = [1,2,3];
var b = a;
b = [1,2,3,4];
alert(a); // 1,2,3

上面这个弹出结果,考察的是对象引用时的问题,对象引用改变了。

下面的弹出结果是,当b重新赋值时,对象应用问题就已经解开了,因为重新赋值时,b就又开了个新的地址,所以a还是1,2,3

所以总结一下,就是如下:
属性的继承 方法的继承
调用父类的构造函数call for in  拷贝继承(jquery中就是如此)

最新文章

  1. SPOJ GSS3 Can you answer these queries III[线段树]
  2. Thinking in java学习笔记之final
  3. 第三个Sprint团队贡献分
  4. [ACM_贪心] Radar Installation
  5. 解析导航栏的url--selnium,beautifulsoup实战
  6. centos7 gradle
  7. 2016-07-07: 重新编译时vc90.pdb不是创建此预编译头时使用的pdb文件
  8. 二十九、EFW框架开发的系统支持SaaS模式和实现思路
  9. uLua学习笔记(一):uLua安装及上手
  10. Linux下OpenSSL 安装图文详解
  11. Beta Round #9 (酱油杯noi考后欢乐赛)PLQ的寻宝
  12. HTTP初步注解
  13. MVC超链接
  14. spring启用线程空指针异常
  15. 刷新UITableView
  16. centos7正确关机重启
  17. java----JDOM解析XML
  18. Mybatis Generator主要配置详解
  19. day72Django之ORM
  20. Appscanner实验还原code3

热门文章

  1. selenium测试框架篇
  2. 关于playmaker play animation出现警告 The AnimationClip 'xxx' used by the Animati ...
  3. lintcode:Pow(x, n)
  4. Emmet语法介绍
  5. wordpress安装,创建配置文件无反应
  6. Linux命令-mkdir
  7. 【算法题】- 求和等于K子数组
  8. Android应用开发学习笔记之菜单
  9. AE开发 入门教程
  10. Android开发之SD卡上文件操作