JavaScript高级(含ES6)-Day02构造函数和原型

ES6

全称ECMAScript 6.0,2015年6月发版,目前的浏览器中JavaScript都是ES5版本的。

创建对象的三种方法
		// 1、对象字面量
        var obj1 = {};
        // 2、new Object
        var obj2 = new Object();
        // 3、构造函数
        function Star(uname,age){
            this.uname = uname;
            this.age = age;
            this.sing = function(){
                console.log(this.uname+"唱歌了");
            }
        }
构造函数

构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初值,总与new一起用。
注意

  1. 构造函数用于创建某一类对象,首字母要大写;
  2. 构造函数要和new一起使用才有意义。

new在执行时会干的四件事

  1. 在内存中创建一个新的空对象;
  2. 让this指向这个对象;
  3. 执行构造函数里面的代码,给这个新对象添加属性和方法;
  4. 返回这个新对象(不需要return);
构造函数成员
  1. 实例成员是构造函数内部通过this添加的成员,只能通过实例化的对象来访问;
  2. 静态成员是在构造函数本身上添加成员,只能通过构造函数访问;
  3. 构造函数通过原型分配的函数是所有对象所共享的。

JavaScript规定,每一个构造函数都有一个prototype属性,指向另一个对象。prototype是一个对象,这个对象的属性和方法都会被构造函数所拥有。

原型链的作用:共享方法。

对象都会有一个属性__proto__,指向构造函数的prototype原型对象。
对象原型和构造函数(prototype)原型内都有一个属性constructor,我们称之为构造函数,指回构造函数本身。

原型对象内的__proto__是object.prototype;
object.prototype.__proto__是null;

JS成员查找机制
  1. 当访问一个对象属性(或方法),首先是查找对象自身;
  2. 如果对象自身不存在,就找它的原型(也就是__proto__ 指向的prototype对象);
  3. 如果还没有,就找原型对象的原型–Object原型对象;
  4. 依此类推,一直找到object(null)为止。
this指向问题

在原型对象中,构造函数内的this指向和原型对象中的this指向都是实例对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值