面向对象有一个特征是继承,即重用某个已有类的代码,在其基础上建立新的类,而无需重新编写对应的属性和方法,继承之后拿来即用;在其他的面向对象编程语言比如Java中,通常是指,子类继承父类的属性和方法;我们现在来看看,JS是如何实现继承这一个特征的;要说明这个,我们首先要看看,每个对象都有的一个隐藏属性[[Prototype]];对象的隐藏属性[[Prototype]]在JS中,每个对象obj,都有这样一个隐藏属性[[Prototype]],它的值要么是null,要么是对另一个对象anotherObj的引用(不可以赋值为其他类型值),这另一个对象anotherObj,就叫做对象obj的原型;通常说
Whenitcomestoinheritance,JavaScriptonlyhasoneconstruct:objects.Eachobjecthasaprivatepropertywhichholdsalinktoanotherobjectcalleditsprototype.Thatprototypeobjecthasaprototypeofitsown,andsoonuntilanobjectisreachedwithnullasitsprototype.Bydefinition,nullhasnoprototype,andactsasthefinallinkinthisprototy
Whenitcomestoinheritance,JavaScriptonlyhasoneconstruct:objects.Eachobjecthasaprivatepropertywhichholdsalinktoanotherobjectcalleditsprototype.Thatprototypeobjecthasaprototypeofitsown,andsoonuntilanobjectisreachedwithnullasitsprototype.Bydefinition,nullhasnoprototype,andactsasthefinallinkinthisprototy
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助很多前端都喜欢用console.log调试,先不谈调试效率怎么样,首先 console.log有个致命的问题:会导致内存泄漏。为什么这么说呢?用Performance和Memory工具分析下就知道了。我们准备这样一段代码:一个按钮,点击之后创建一个数组,执行一些计算。很常见的逻辑。我们最后加了一个console.log打印了下这个数组。起个静态服务:浏览器访问: 点击performance下的垃圾回收按钮,手动触发一次GC: 勾选Memory,然后开始录制,点击3次按钮,再执行一次GC:你会发现内存是这样的:内存占用有三次增长,因
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助很多前端都喜欢用console.log调试,先不谈调试效率怎么样,首先 console.log有个致命的问题:会导致内存泄漏。为什么这么说呢?用Performance和Memory工具分析下就知道了。我们准备这样一段代码:一个按钮,点击之后创建一个数组,执行一些计算。很常见的逻辑。我们最后加了一个console.log打印了下这个数组。起个静态服务:浏览器访问: 点击performance下的垃圾回收按钮,手动触发一次GC: 勾选Memory,然后开始录制,点击3次按钮,再执行一次GC:你会发现内存是这样的:内存占用有三次增长,因
propmt是一个输入语句它的返回结果是你输入的内容,无论输入什么内容返回结果的数据类型都是字符串类型。alert是一个弹框输出console是控制台输出 下面代码的意思是输入一些内容然后保存到content变量里面然后alert输出content变量也就是你从prompt输入的内容console控制台输出content内容12 letcontent=prompt("请输入内容:");3 alert(content);4 console.log(content);5 prompt的显示样子,我输入了3个1,然后保存到了content的变量里面。下面是alert的显示结果,我把conten
propmt是一个输入语句它的返回结果是你输入的内容,无论输入什么内容返回结果的数据类型都是字符串类型。alert是一个弹框输出console是控制台输出 下面代码的意思是输入一些内容然后保存到content变量里面然后alert输出content变量也就是你从prompt输入的内容console控制台输出content内容12 letcontent=prompt("请输入内容:");3 alert(content);4 console.log(content);5 prompt的显示样子,我输入了3个1,然后保存到了content的变量里面。下面是alert的显示结果,我把conten
1.console.log()调试时console.log是最常用的命令之一,此外还有一些其他的使用的功能。console.log()中,可是使用占位符对信息加工输出console.log('%c%s%s%s','color:yellow;background-color:black;','–','测试信息','–');也可以简单一点也可以打印出来图片哈在占位符%c中设置背景图片但是使用padding和line-height需要多调整这里就不演示了(没有想到使用场景0.0)console.log(`%c本地测试%cHelloWorld%c`,'color:#fff;font-size:10px
1.console.log()调试时console.log是最常用的命令之一,此外还有一些其他的使用的功能。console.log()中,可是使用占位符对信息加工输出console.log('%c%s%s%s','color:yellow;background-color:black;','–','测试信息','–');也可以简单一点也可以打印出来图片哈在占位符%c中设置背景图片但是使用padding和line-height需要多调整这里就不演示了(没有想到使用场景0.0)console.log(`%c本地测试%cHelloWorld%c`,'color:#fff;font-size:10px
一、理解什么是prototype了解什么是prototype首先要了解一句话,prototype是函数的一种属性,是函数的原型对象。前半句表明了prototype是函数的属性,并不是对象的一种属性,证明了prototype只能用函数名调用,而不是对象名调用,以下例子可以证明:functionPerson(){name="123";}console.log(Person.prototype)//是可以访问到的。letstu=newPerson();console.log(stu.prototype)//undefinedconsole.log(stu.name)这个还要注意的一点,函数里面直接声