语言特点
2021-02-06 20:16
标签:声明 实现继承 空间 tor key 共享问题 声明变量 特点 The /*function Child(name, age, gender) { call apply bind 修改this指向的方法 //重新替换原型之后 构造函数并不指向原构造函数,所以要将构造函数指向原函数Child . prototype.constructor = Child; var c1 = new Child("wangwu", 12); Son.prototype.sleep = function() { // 3. bind() 语言特点 标签:声明 实现继承 空间 tor key 共享问题 声明变量 特点 The 原文地址:https://www.cnblogs.com/zycs/p/12762462.html
继承方式一
this.name = name;
this.age = age;
}
var c1 = new Child("孩子", 12);
*/
function Child(name, age) {
Parent.call(this, name, age)
}
var c2 = new Child("雪儿", 12);
console.log(c2);
//就是说只是把父类构造函数里面的属性和方法继承了但是父类原型里面的方法继承不了
//c2.test(); // 报错
//创建的child对象并不需要work方法但是每次创建都会有(浪费空间)
c2.work() //执行了函数体
继承方式二
console.log(c1.type);
c1.test()
//为什么不直接使用Child.prototype = Parent??
//把父类的构造函数直接替换掉子类的原型会导致父类构造函数的私有属性发生变化甚至有些成员 父类构造函数并不需要
child.prototype = Parent;
Child.prototype.study = function() {
console.1og( "好好学习,天天向上");
}
console.dir(Parent);
Parent.study();
继承方式四
console.log(this.name + "我要睡觉 了");
}
var s1 = new Son(12);
//这个是父类构造函数里面的方法
s1.run();
//是父类原型里面的方法
s1.eat();
console.log(s1.type);
//自己构造函数里面的方法
s1.study();
//自己的原型里面的方法
s1.sleep();
复习
//语法:函数名.bind(this的新指向, 参数1,参数2, ......
//不会执行修改了this指向后的函数,而是直接作为返回值返回
function getSum(n1, n2) {
console.1og(n1 + n2);
console.log(this);
}
var fn = getSum.bind(obj);
console.log(fn);
fn(12, 12)
上一篇:java基础:现在有如下一个数组: int [] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数