昨天压缩Js文件时发现了项目中的一个prototype的问题代码如下所示:

1.

<script>
var XXX = function(){ };
var x1 = new XXX();
XXX.prototype.fnx = function(){
alert("123");
} x1.fnx();
</script>

2.

<script>
var XXX = function(){ };
var x1 = new XXX();
XXX.prototype = {
fnx: function () {
alert("123");
}
}
x1.fnx();
</script>

实际情景的代码如上类似,在1中我们可以执行fnx方法,但2中我们却不行,问题就是出现在实例化后XXX的原型链方向已经改变。

代码1中XXX.prototype.fnx只是向原型链中加入一个方法,并不影响原型链的指向,而在代码2中是将原型链指向一个含有fnx方法的Object这样你之前实例化的对象原型链和当前的并无关系,所以无法执行fnx方法,如果在改变原型链指向之后实例化对象则会解决该问题。

希望广大码友注意类似问题!

最新文章

  1. 使用C#代码部署SharePoint 2013开发包简单总结(一)
  2. [WCF]设置拦截器捕捉到request和reply消息
  3. 嵌入式中的 *(volatile unsigned int *)0x500 解释
  4. Hoeffding连接到机器学习
  5. 140724夏训.txt
  6. MySql状态查看方法 MySql如何查看连接数和状态?
  7. 简单的叙述下SQL中行列转换的小知识!
  8. jsp加java连接数据库,进行信息输入,并进行初步的拦截判断。
  9. ZOJ-1649 Rescue---BFS+优先队列
  10. Ubuntu下MySQL报错:ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)
  11. Ajax取PHP JSON数据并显示
  12. 代码规范与复审2——个人博客作业week
  13. C# 依赖注入那些事儿
  14. zabbix没有frontends目录
  15. Spring MVC+Hibernate JPA搭建的博客系统项目中所遇到的坑
  16. Docker 入门(Mac环境)-part 1 入门基本操作
  17. Linux Windows平台添加pip源
  18. C语言 知识点总结完美版
  19. 【snmp】Linux开启snmp及查询
  20. Python学习问题记录

热门文章

  1. Spring计划
  2. 简单几何(直线与线段相交) POJ 1039 Pipe
  3. .net如何把导数据入到Excel
  4. ural 1242. Werewolf
  5. COJ1012 WZJ的数据结构(十二)
  6. PHP 实现 一致性哈希 算法(转的)
  7. C#关闭word进程
  8. 【iHMI43 4.3寸液晶模块】demo竖屏例程(版本1.01)发布
  9. CSS3动画(动画已丢,看原文)
  10. php连接redis数据库 操作redis任务队列