之前算字符串的字节码的题:

 

 进行优化:

 

 

 原型继承关系:(沿着__proto__一层一层的去继承原型属性的链条叫做原型链) 

 

 

 

 

 

原型链的终点是在Object.prototype

Object.prototype里面有一个toString的方法

 

 

 

 

对xxx.prototype的引用值通过xxx进行修改

 

 

对xxx.prototype的基本类型值通过xxx进行修改

 

 

 

对xxx.prototype里面的this指向问题:

 

 

函数如果没有返回值默认返回undefined:

 

 

 

 

 

var obg ={} 和 var obj2 =new Object()是一样的

 

 原型的原型是由系统自带的Object构造出来的

Object.create(对象,null)创建对象

 

 

 

Object.create可以自己定义原型:

 

 

 深度理解自己定义原型:

 

 

不是所有的对象都继承与Object.prototype, 如果Object.create(null);那么就不继承Object.prototype,无法执行Object.prototype里面的方法

 

 

 

对于自定义原型是可以的,但是无法实现xxx.__proto__=xxx;因为__proto__必须是系统内置的;无法去定义它

 

 

关于原始值能够使用String()的超祥解:

 

 

对于document.write();会将内容转换成String类型的,而如果自定义原型链的化就无法访问Object.toString()方法

 

 

当然你可以自己加toString方法

 

 

对象类型的Object

 

 

Object.prototype里面的toString方法:

 

 Number.prototype里面的toString方法在Number.prototype进行了重写toString()方法:

 

 

call与apply:

call:执行符号()其实就相当于call()方法

 

 Call()的作用:能够改变调用者的函数内属性和方法的指向你要指定的对象;

 

apply()的作用和call是完全相同的:只有一个区别,后面第二个实参是数组[]

 

 

 

 

 call()和apply()必须要学会,使用apply()是一个非常有效的一个方法

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/mahuablog/p/14605180.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!