随笔分类 -  js基础

摘要:1. 浅拷贝 创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。 简单来说:浅拷贝只拷贝了对象第一层属性的基本类型值,以及第一层的引用地址。 常见的 阅读全文
posted @ 2022-08-19 15:42 wkxu 阅读(25) 评论(0) 推荐(0) 编辑
摘要:什么是元编程? 维基百科: 元编程 (meta programming)是一种编程技术,编写出来的计算机程序能够将其他程序作为数据来处理。 意味着可以编写出这样的程序:它能够读取、生成、分析或者转换其它程序,甚至在运行时修改程序自身(反射)。 举个例子,如果想要查看对象a和对象b之间的关系,是否是通 阅读全文
posted @ 2022-08-19 15:41 wkxu 阅读(759) 评论(0) 推荐(0) 编辑
摘要:对于This的理解 js在执行一段可执行代码时,会创建对应的执上下文,对于每个执行上下文,都有三个重要属性: 变量对象 作用域链 this 当一个函数调用时,会创建一个执行上下文,这个上下文包括函数调用的一些信息(调用栈,传入参数,调用方式),this就指向这个执行上下文。 this值在进入上下文的 阅读全文
posted @ 2022-08-19 15:41 wkxu 阅读(95) 评论(0) 推荐(0) 编辑
摘要:闭包的定义 MDN 对闭包的定义: 闭包是指那些能够访问 自由变量 的 函数。 两个点,首先闭包必须是 函数,其次必须要能访问 自由变量 自由变量指哪些? 自由变量是指在函数中使用的,但既不是函数参数也不是函数内局部变量的变量。 由此,我们可以看出闭包由两部分构成: 闭包 = 函数 + 函数中使用的 阅读全文
posted @ 2022-08-19 15:41 wkxu 阅读(272) 评论(0) 推荐(0) 编辑
摘要:js实现继承的多种方式 1. 原型链继承 function Parent() { this.name = 'xwk' } Parent.prototype.getName = function() { console.log(this.name) } function Child() {} Chil 阅读全文
posted @ 2022-08-19 15:40 wkxu 阅读(37) 评论(0) 推荐(0) 编辑
摘要:分析js代码的运行顺序 1. 下面的问题你能准确回答出来么? 词法作用域是什么?动态作用域是什么? js代码是一行一行运行的么? 什么是执行上下文?执行上下文栈? 活动对象(AO)?变量对象(VO)?作用域链? 2. 静态作用域和动态作用域 var value = 1; function foo() 阅读全文
posted @ 2022-08-19 15:40 wkxu 阅读(136) 评论(0) 推荐(0) 编辑
摘要:JS的原型和原型链究竟是什么? 1. 从JS创建一个对象开始说起: 1.1 工厂模式创建对象 (缺点是无法知道创建出来的对象是一个什么类型的对象) function createPerson(name, age, job) { let o = new Object(); o.name = name; 阅读全文
posted @ 2022-08-19 15:39 wkxu 阅读(444) 评论(0) 推荐(0) 编辑
摘要:js创建对象的多种方式 1. 工厂模式 function createPerson(name) { var o = new Object() 0.name = name return o } var person1 = createPerson('xwk') 缺点:创造出来的对象无法识别,因为都指向 阅读全文
posted @ 2022-08-19 15:39 wkxu 阅读(43) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示