JS原型题集
来源:互联网 发布:信天翁 爱情 知乎 编辑:程序博客网 时间:2024/06/01 22:50
本文收集JS原型相关问题,会不断跟新!
1、题目如下:
var fun = function(){}fun.prototype = { name : 'peter', age : 25 }var a = new fun();var b = new fun();console.log(a.name, b.name);//peter peterfun.prototype.name = 'jack';console.log(a.name, b.name);//jack jackfun.prototype = {};fun.prototype.name = 'tom';console.log(a.name, b.name);//jack jackb.constructor.prototype.name = 'kitty';console.log(a.name, b.name);//jack jack若想要输出tom该怎么改,为什么不能输出kitty?
答案:
(1)、fun.prototype ={}是重写原型,重写后跟重写前就已经实例化的对象没有关系的,所以Tom自然不生效。若要输出tom,添加以下代码
a.__proto__.name=tom,无法通过fun来实现,因为原型链已断
(2)、 不能输出kitty是因为b.contructor!=fun,在刚开始的时候fun的原型就被重写了。可以改为
fun.prototype={
name:''peter'',
constructor:fun,
age:25
}
2、闭包题
function a(){
var i=1
return function(){
console.log(i);//输出1
console.log(this.i)// 输出2
}
}
window.i=2;
a()()
解释:看下图闭包的作用域链
0 0
- JS原型题集
- JS原型、原型链
- JS-原型、原型链
- JS原型,原型链
- js原型,原型链
- JS原型+原型链
- js原型
- js原型
- js原型
- js原型
- js原型
- js原型
- js原型
- js原型
- js原型
- JS原型
- JS原型
- JS原型
- H5项目常见问题汇总及解决方案(转)
- error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”
- oracle用户的权限
- 八皇后问题(回溯 递归)
- 分布式学习
- JS原型题集
- HDU 1827 3072强联通分量
- HDU 5761 Rower Bo (数学题,积分)
- 欢迎使用CSDN-markdown编辑器
- 工厂模式
- ZOJ - 1649 Rescue
- LeetCode总结
- 人生经验 我想在大学中学一门技术,我该怎么办?
- Java操作Excel导出数据到Excel文档