JavaScript原型要点笔记
来源:互联网 发布:外国人羡慕中国淘宝 编辑:程序博客网 时间:2024/06/01 20:03
接触JavaScript一年3个月了,感觉自己的JavaScript水平还是停留在半年以前。好惭愧。以前广度关注较多,现在深度也开始吧。
原型这个看一遍概念大概就知道是什么东西了。我这里主要记录那些让我有点懵逼的地方。
1、constructor是啥?
在原型模式声明中,多了两个属性,这两个属性都是创建对象时自动生成的。
__proto__属性是实例指向原型对象的一个指针。它的作用就是指向构造函数的原型prototypr。
通过这两个属性,就可以访问到原型里的属性和方法了。
2、每个对象都有prototype属性吗?
不对。我们创建的每个函数都有prototype属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法。
3、如何判断对象是否拥有某个属性?
有两种方式:
1>、in操作符,它会在通过对象能够访问给定属性时返回true,无论改属性存在于实例中还是原型中。
2>、hasOwnProperty()方法,这个方法可以检测属性是否在实例中。
扩展一下:
当检查对象上某个属性是否存在时,hasOwnProperty 是唯一可用的方法。同时在使用 for in loop 遍历对象时,推荐总是使用 hasOwnProperty 方法这将会避免原型对象扩展带来的干扰,我们来看一下例子:
// 修改 Object.prototypeObject.prototype.bar = 1;var foo = {moo: 2};for(var i in foo) { console.log(i); // 输出两个属性:bar 和 moo}
我们没办法改变for in语句的行为,所以想过滤结果就只能使用hasOwnProperty 方法,代码如下:
// foo 变量是上例中的for(var i in foo) { if (foo.hasOwnProperty(i)) { console.log(i); }}
4、问题4是问题3的扩展,如何判断属性是在构造函数的实例里,还是在原型里?
采用hasOwnProperty。
5、constructor被重写是什么概念?
constructor一般指向的是构造函数自身,当然可以重写,指向别的构造函数,这样原型连就会被改变。
0 0
- JavaScript原型要点笔记
- javascript 要点学习笔记
- JavaScript笔记:原型
- JavaScript原型学习笔记
- javascript笔记--原型和原型链详解
- 【笔记】javascript原型属性prototype
- JavaScript笔记整理——原型和原型链
- javascript学习笔记(五)原型和原型链详解
- 《悟透javascript》学习笔记:九、原型毕露
- 《悟透javascript》学习笔记:十、原型扩展
- Javascript 笔记(4)----继承与原型链
- JavaScript学习笔记(三十七) 原型继承
- JavaScript 学习笔记 三 原型(prototype)
- javascript原型prototype代码片段笔记
- 有关javaScript面向对象和原型笔记
- 【笔记】javascript原型链继承实例
- javascript类和原型学习笔记
- JavaScript面向对象笔记–原型
- JAVA编程基础(一) 搭建开发环境
- 从内存角度分析:数组删除自己内部指定对象和通过函数形参改值问题
- 复制一个5G文件只需要两秒,全网最牛方法!
- swift Character类型
- HDU5892 Resident Evil(二维树状数组+状态压缩)
- JavaScript原型要点笔记
- Android String.xml使用
- Spring注解@Resource和@Autowired区别对比
- java使用线程池查询当前网段局域网ip
- 4. Java基本数据类型
- Oracle取短日期格式
- 一点奇特的经历
- Java String 面试总结
- 16-服务管理