JavaScript原型(prototype)小记
2016-05-20 17:15
423 查看
一、对象的原型
1、通过构造函数,创建对象:
JavaScript对象的属性,是由自身属性加上原型链中的属性,对象的原型链是由创建它的构造函数决定的,也就是创建对象时,调用的new function,例如:// 定义一个构造函数 // JavaScript中构造函数和普通函数没区别,只是调用的时候使在前面加关键字new则为调用构造函数,不加则为普通调用 // 构造函数约定使用大写字母开头(便于与普通函数的区分) function Foo() {} // 通过构造函数新建一个对象 var foo = new Foo();
这时新建的foo对象将拥有Foo.prototype属性和自身的属性,假设属性重合,则采用就近原则,使用对象的属性
2、通过语法糖创建对象:
假设我们使用的是语法糖来创建对象的,底层其实也是调用构造函数来创建的// 通过语法糖来创建对象 var foo = { x: 1, y: 2 }; // 等价于 var foo = new Object(); foo.x = 1; foo.y = 2;
也就是说使用语法糖来创建的对象,也默认继承了Object.prototype属性
3、对象默认继承的Object.prototype
另外所有的对象的原型都继承自Object.prototype,也就是在上面通过调用构造函数Foo()创建的对象除了继承了Foo.prototype,还继承了Object.prototype,如下所示:Object.prototype.a = "Object.prototype.a"; function Foo() {} Foo.prototype.b = "Foo.prototype.b"; var foo = new Foo(); foo.c = "foo.c"; console.log("foo.a : " + foo.a); console.log("foo.b : " + foo.b); console.log("foo.c : " + foo.c); /* foo.a : Object.prototype.a foo.b : Foo.prototype.b foo.c : foo.c */
今天学习的先粗略写到这,改天有空再补充~
相关文章推荐
- JavaScript中的跨浏览器事件操作的基本方法整理
- 用JavaScript动态建立或增加CSS样式表的实现方法
- <Js>数据类型
- js抛物线
- Web前端程序员推荐7个实用的JavaScript工具
- js判断单选按钮是否被选中
- NW.js & Electron Compared (2016 Edition)
- 详解JavaScript中的事件流和事件处理程序
- json一些特点
- js跨域请求
- js简单分页,可用
- JavaScript中的Object对象学习教程
- chart.js 入门&&highcharts 入门(推荐使用highcharts)
- Js中动态创建Json,动态为Json添加属性、属性值
- NW.js and Electron compared
- Javascript(JS)对Cookie的读取、删除、写入操作帮助方法
- jsp中文乱码问题
- 【转】js写显示农历的日期
- javascript进行数组追加方法小结
- JSP页面固定页面为绝对路径