Javascript对象创建过程:
JavaScript语言没有类的概念,除了基本类型(Number、String、booleans、null和undefined)之外,一切都是对象。
- 创建一个简单的对象,可以理解为空对象
- 将隐藏的__proto__属性指向构造函数的prototype对象
- 执行构造函数,并为构造函数中this提到的创建新的对象。
Javascript动态属性和原型属性:
Javascript创建一个新的对象时,只会为“this提到的创建新的对象”在堆里面分配内存空间,而__proto__属性所对应对象(就是构造函数的prototype对象)其实是一个共享对象。所有创建新对象都会共享这个prototype对象。当访问新对象的属性时,如果新对象本身不含有此属性(含有此属性表示构造函数在用this提及的属性,或对象动态创建属性,可以用hasOwnProperty判断),就会访问共享的prototype对象中含有的属性。
说了这么多,还是没说到重点,所以神奇的重点是:
我们自己定义的对象,如果是在构造函数的是prototype对象定义属性和方法,这些属性和方法将会被所有通过这个构造函数new的对象共享。但这些共享的属性和方法是不能被改变的。我们改变对象的某个属性时,其实是为对象创建一个动态属性。这时才为这个对象属性分配空间。这就是javascript对象的奥秘。
分享到:
相关推荐
《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf《JavaScript程序设计案例教程》课件(共13章)第...
JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计JavaScript程序设计...
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 是一种解释...
在吃透了前面所说的书之后,接下来两本书的顺序已经无关紧要了,《JavaScript DOM高级程序设计》(注意和《JavaScript 高级程序设计》相区别)和《JavaScript设计模式》,这两本都是重量级的书,能让你的JS技术上一...
javascript高级-javascript设计模式。视频文件(无加密可在线观看)
javascript程序设计实验1.docx
JavaScript网页设计300例,JavaScript网页设计300例!超级实用!
JavaScript设计模式.pdf
二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript...
Javascript程序设计教程(电子书)
1 妙味课堂原创JavaScript视频教程 JS基础教程5课资料
Head Frist JavaScript 程序设计.pdf 一本简单有趣的JavaScript入门教程
JAVASCRIPT程序设计基础教程课本案例代码
javascript
JavaScript 网页设计300例 JavaScript 网页设计300例 JavaScript 网页设计300例
JavaScript网页设计300例.rar JavaScript网页设计300例.rar JavaScript网页设计300例.rar
然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括Module(模块)模式、Observer(观察者)模式、Facade(外观)模式和Mediator(中介者)模式;最后,还探讨了模块化的JavaScript模式、jQuery及其插件...
《JavaScript程序设计基础教程》 课件 课程名:JavaScript 程序设计基础教程 <br>-------------------------------------------------------------------------------- <br>一、课程目的和要求 掌握HTML...
JavaScript设计模式与开发实践.pdf