JS中注意原型链的“指向”
2024-10-11 19:47:05
昨天压缩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方法,如果在改变原型链指向之后实例化对象则会解决该问题。
希望广大码友注意类似问题!
最新文章
- 使用C#代码部署SharePoint 2013开发包简单总结(一)
- [WCF]设置拦截器捕捉到request和reply消息
- 嵌入式中的 *(volatile unsigned int *)0x500 解释
- Hoeffding连接到机器学习
- 140724夏训.txt
- MySql状态查看方法 MySql如何查看连接数和状态?
- 简单的叙述下SQL中行列转换的小知识!
- jsp加java连接数据库,进行信息输入,并进行初步的拦截判断。
- ZOJ-1649 Rescue---BFS+优先队列
- Ubuntu下MySQL报错:ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)
- Ajax取PHP JSON数据并显示
- 代码规范与复审2——个人博客作业week
- C# 依赖注入那些事儿
- zabbix没有frontends目录
- Spring MVC+Hibernate JPA搭建的博客系统项目中所遇到的坑
- Docker 入门(Mac环境)-part 1 入门基本操作
- Linux Windows平台添加pip源
- C语言 知识点总结完美版
- 【snmp】Linux开启snmp及查询
- Python学习问题记录