首页 > temp > JavaScript教程 >
-
原型与原型链深入+对象继承
之前算字符串的字节码的题:
进行优化:
原型继承关系:(沿着__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