JS高级教程

137 阅读1分钟

ES中所有参数都是按值传递,就是将函数外部的值复制给函数内部的参数,也就是将一个变量完全复制到另一个变量

向参数传递基本数据类型时,传递的值会被复制给一个局部变量

向参数传递引用类型值时,会把这个值在内存中的地址复制给另一个局部变量,因此这个局部变量的变化会反应在函数的外部(注意: 虽然反应在外部,但是需要一个载体去接受这个值,并不会改变外部传递给它值的对象)

function superType() {
  this.property = true
}
superType.prototype.getSuperValue = function () {
  return this.property
} 
function subType() {
  this.subproperty = false
}
subType.prototype = new superType()

subType.prototype.getSubValue = function () {
  return this.subproperty
}

var instance = new subType()
alert(instance.getSubValue())


声明两个函数supertype和subtype,supertype给自己的原型添加了一个getSuperValue的属性

subtype实例化superType函数,继承了superType的原型

给自己的原型(也就是supertype的原型添加了一个getSubValue的属性)

instance实例化subtype函数

可以调用到getSuperValue属性