关于我的‘新思考’

本文探讨了大学生如何合理利用时间,克服大二的惰性,应对英语考试和学术挑战,同时深入解析JavaScript中的原型继承及其constructor属性的使用。强调个人成长与目标设定的重要性,以及编程习惯的养成。
摘要由CSDN通过智能技术生成
开学新思考

今天是新生开学的第二天,我也要成为别人口中的‘学长’了,但又感觉怎么过的这么快呀?似乎我也是昨天刚进入的学校,但如今已经是大二的学长了。看来真的是需要做出改变了,学长和我们说我们的时间也不多了,但我心想‘可是我才刚上大二呀’,但事实上就是‘我已经上大二了’。看来时间真的不多了,我的基础还需要巩固,还有新知识需要学习。时间真的不多了,真要收一收大一的那种懒散的性格了,马上英语四六级就要开始报名了,更要开始向上赶超别人。这几天从小组回宿舍的路上看到还有人在图书馆前背英语(那时已经快10:30),声音并不算大,但却直击内心深处——考研似乎成了当代高校学子改变自己的主流,但也是需要不断的接受‘内卷’才能有那轻微的突破。

但我们应该如何做呢?随波逐流,还是逆水行舟?

答案并非是唯一的,唯有逆水行舟‘卷’起惊涛骇浪,是目标,亦是远见,但随波逐流考取功名也是情怀,是现实,没有人需要被定义成行舟和水流,但都是需要书山有路勤为径,学海无涯苦作舟。

既然没有前方的目标,那就不能屈于现在,从新出发。

“当回忆往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧;”

所以从现实出发放眼未来,不断突破自我,向上前进。

也许在未来在某一刻回忆起现在的一刻亦是一道別味的风景。

原型继承的再理解

今天分享的是原型继承的再理解


//原型继承
function Father(name, age) {
    this.name = name,
        this.age = age
}
Father.prototype.setNewname = function (name) {
    this.name = name;
}
function Child(name, age, gender) {
    this.name = name,
        this.age = age,
        this.gender = gender
}

Child.prototype = new Father();
console.log(Child.prototype.constructor); // [Function: Father]
Child.prototype.constructor = Child;
let childin = new Child('原型继承的子类的实例化对象', 18, '男');
childin.setNewname('原型王二狗');
console.log(childin);  // Child { name: '原型王二狗', age: 18, gender: '男' }

关于    子类.prototype.constructor = 子类;

再复习JS的时候忘写这一段语句了,但却发现也能运行,那既然也能运行为什么还要加上呢?

或者说既然也能运行,那这一段话在代码中起着什么样的作用呢?

我们将这一行注释掉

// Child.prototype.constructor = Child;
结果为
Father { name: '原型王二狗', age: 18, gender: '男' }

结果很明显,子类.prototype.constructor = 子类;改变的是实例化对象的原型,但这样有什么用吗?

我在搜索中发现实际上的用处并不大,给出的解释是:

修正constructor是为了保证它能按照constructor被设计的意义一样正确的指向构造函数,如果constructor正确指向构造函数,就意味着能获取到构造函数的prototype。

 而在红宝石上关于继承方法介绍中也删去了上述语句

所以总结就是并不是强制性的,可写可不写,但从编程习惯上,我们应该让对象的constructor指向其构造函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值