/* 空对象,几乎不占内存
修改Student的prototype对象,不会影响到Person的prototype对象 */
/* 父类 */
function person(){}
person.prototype.head = 1;
person.prototype.foot = 2;
/* 子类想继承父类的属性 */
function f(){}
/*把父类的原型直接赋值给空对象的原型上*/
f.prototype = person.prototype;
/*把空对象的实例化对象给到子类的原型上*/
Student.prototype = new f();
let stu1 = new Student();
/* console.log(stu1.foot) */
Student.prototype.age = 30;
let p =new person();
console.log(p);
/*把空对象的实例化对象给到子类的原型上*/
Student.prototype = new f();
/*★constructor构逢 器都是指向自己的*/
Student.prototype.constructor = Student;
let stu1 = new Student();
console.log(stu1.foot);
console.log(stu1);
/* 不会影响到Person的Prototype对象 */
Student.prototype.age = 30;
let p = new person();
console.log(p);
/*原型链就是一层一层向上找的过程 */
/*原型链维承就是利用了上面这种特性*/
/* instanceof
来判断这个实例(p1)是不是这个构造函数(Person)实例化出来的对象*/
/* console.1og(p1 instanceof Person); */ /* =>true */
// console.log(p1 instanceof Student); /* =>false */
/* 万物皆对象 */
// console.1og(p1);
// function clearSpace(){}
String.prototype.clearQSpace = function(){
return this.replace(/^\s+/,'')
}
let nStr = ' abc'.clearQSpace();
console.log(nStr);
/* 'abc'.clearQSpace(); */
/* 去除字符串前后空格 */
String.prototype.clearQSpace = function (){
return this.replace(/^\s+|\s+$/g,'')
}
let nStr = ' abd ',clearQSpace();
console.log(nStr);