For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
2017程序员考官必问题: JavaScript深入浅出
在2017程序员面试岗位的时候,最喜欢问题问题就是JavaScript深入浅出,那么JavaScript深入浅出的核心知识是什么吗?前两次总结了JavaScript中的基本数据类型(值类型<引用类型>,引用类型<复杂值>)以及他们在内存中的存储,对内存空间有了一个简单的了解,以及第二次总结了this深入浅出的用法。
昆明it培训老师知道了this的用法取决于函数四种调用的方式。
这一次我们来对JavaScript中原型以及原型链做一个深入浅出的理解。
考官必问题一:【JavaScript深入浅出系列】
1)复杂值vs原始值&&内存空间 - JavaScript深入浅出(一)
2)this的用法 – JavaScript深入浅出(二)
3)原型那些事 - JavaScript深入浅出(三)
待续......关于原型的话题都会变得严肃。
实际上,原型只是一个被称为"原型"的空对象属性,它是由JavaScript在后台创建(当然我们知道了它的原理,可以手动完成这项工作);当你创建一个函数时,这个函数都会有一个prototype属性(不管你是不把它当做一个构造函数使用)。
考官必问题二:【原型链概要】
prototype属性是JavaScript为每个Function实例创建的一个对象。
具体的说:"它将通过new关键字创建的<对象实例>链接回创建它们的<构造函数>" 。就这样,我们可以共享或继承通用的方法和属性。当我们在属性查找时,就会不自觉的开启了我们的原型链之旅
让我们通过一个简单的例子开启我们的原型链查询之旅:我们使用Array构造函数创建一个数组,然后调用join方法
join()是在哪个地方定义的呢?
事实上,我们经常使用的join(),slice(),push()...等这些内建的方法,都被定义为了Array()构造函数的prototype属性的属性。由于在我们创建的myArray数组中没有找到join(),因此JavaScript会在原型链中查找join()方法;
其实这样做我们很容易就联想到了效率和重用,通过把该属性添加到原型中去,我们所有的数组都有充分利用了相同的join()函数,而不需要为每一个数组实例都创建函数的新实例。
0元课程福利来袭,扫码可加入试听课程报名!