javascript基础常识问答(三)

new 操作符做了什么?

例: new person()

new绑定:如果是构造函数,this指向new出来的实例对象。
如果函数调用使用了new关键字,那么这个函数就是构造函数。

  • 此时的作用简单来说就是:
    开辟空间,创建对象,改变this指向,调用方法(new person)最后new返回了创造的对象。

  • 总结:new 在执行时会做四件事:

  1. 在内存中创建一个新对象;
  2. 让this指向这个新对象;
  3. 执行构造函数里面的代码,给这个新对象添加方法和属性。
  4. 返回这个对象(不要用return,不需要)

用书上的说:

  1. 创建一个空对象,并且this变量应用该对象,同时还继承了该函数的原型;
  2. 属性和方法被加入到this引用的对象中;
  3. 新创建的对象有this引用,并且最后隐试的返回this。
闭包是什么?特点是什么?

闭包是指有权利访问另一个函数作用域中变量的函数;

  1. 是一个函数
  2. 能访问另外一个函数作用域中的变量
function fn() {
  var a =  20
  return function () {
  	console.log(a)
  }
}

让这个局部变量a像全局变量一样,不被垃圾回收机制所回收,一直在内存中,这是形式中的闭包(表面的理解).

特点:

  1. 闭包可以访问当前函数以外的变量;
  2. 即使外部函数已经返回,闭包仍能访问外部函数定义的变量。
  3. 闭包可以更新外部变量的值。

详细说明点这里

js中的原型和原型链?原型链的应用

每个对象都会在其内部初始化一个属性,就是prototype(原型)。当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链的概念
在这里插入图片描述

原型链的应用:
原型链是实现继承的主要方法
扩展:原型对象实现继承的代码:

function Animal ( name, color,say){
	this.name = name ;
	this.color = color ;
	this.say = function(){
		console.log('喵喵喵')
	}
}
var cat = new Animal('cat','white');
// 如果给Animal的prototype属性上添加一个cry方法,那么实例对象cat将会也有cry方法
Animal.prototype.cry = function(){
	console.log('呜呜呜')
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friday--星期五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值