成都汇智知了堂IT培训机构
IT培训课程升级
IT培训机构知了堂联系方式

如何实现继承(ES5/ES6)及什么是作用域以及作用域链

1. 如何实现继承(ES5/ES6)?

答: 10 function Anima(name){ //父类 11 this.name = name; 12 } 1314 Anima.prototype.sayName = function(){ 15 console.log(this.name) 16 } 1718 function Person(name,age){ //子类 19 Anima.call(this,name); 20 this.age = age; 21 } 2223 Person.prototype = Object.create(Anima.prototype, { 24 constructor: { 25 value: Person, 26 enumerable: false 27 } 28 }) 293031 var p = new Persion("haha",12); 3233 Extends //ES6

2. 什么是作用域以及作用域链? 

答:作用域是指程序源代码中定义变量的区域,限定一个变量可访问范围的,作用域的本质是对 象。JS 采用的词法作用域,在书写代码的时候(定义函数的时候),作用域就已经确定好了。 在 ES6 环境下,包含 3 个作用域,全局 globel,函数作用域,快级作用域( {} ) (eval) 作用域链:当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会 从父级(词法层面上的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是 全局对象。这样由多个执行上下文的变量对象构成的链表就叫做作用域链。 用途是保证对执行环 境有权访问的所有变量和函数的有序访问。本质为执行上下文的 scope 属性,存储所有的变量,包 括局部与全局,控制变量的使用顺序。

如何实现继承(ES5/ES6)及什么是作用域以及作用域链

var b = 10; //1:输出?2:改造代码输出 10 20 (function b(){ b = 20; console.log(b); })(); 

var b = 10; (function b(b) { 在这个函数 b 是一个常量,在函数 b 内部是可以使用的,但是不能修改,如果加上 use strict 严格模式就会报错。 window.b = 20; console.log(b) //输出 10 })(b)

var a = 10; (function () { console.log(a) a = 5 console.log(window.a) var a = 20; console.log(a) })()


实战教学·项目驱动

177 1362 3990
预约免费试学
点击咨询
预约试学