日记网 加入收藏  -  设为首页
您的位置:日记网 > 教育知识 > 正文

目录

1,原型继承 和 类继承 的区别

原型继承 和 类继承 的区别

1.JS类式继承:
/* -- 类式继承 -- */
//先声明一个超类
function Person(name) {
this.name = name;
}
//给这个超类的原型对象上添加方法 getName
Person.prototype.getName = function() {
return this.name;
}
//实例化这个超
var a = new Person('Darren1')
console.log(a.getName());//Darren1
//再声明类
function Programmer(name, sex) {
//这个类中要调用超类Person的构造函数,并将参数name传给它
Person.call(this, name);
this.sex = sex;
}
//这个子类的原型对象等于超类的实例
Programmer.prototype = new Person();
//因为子类的原型对象等于超类的实例,所以prototype.constructor这个方法也等于超类构造函数,你可以自己测试一下,如果没这一步,console.log(Programmer.prototype.constructor这个是Person超类的引用,所以要从新赋值为自己本身
console.log(Programmer.prototype.constructor);
/*function Person(name) {
this.name = name;
} */
Programmer.prototype.constructor = Programmer;
console.log(Programmer.prototype.constructor);
/*function Programmer(name, sex) {
Person.call(this, name);
this.sex = sex;
}
*/
//子类本身添加了getSex 方法
Programmer.prototype.getSex = function() {
return this.sex;
}
//实例化这个子类
var _m = new Programmer('Darren2', 'male');
//自身的方法
console.log(_m.getSex());//male
//继承超类的方法
console.log(_m.getName());//Darren2

2.JS原型继承:
/* -- 原型式继承 -- */
//clone()函数用来创建新的类Person对象
var clone = function(obj) {
4
var _f = function() {};
//这句是原型式继承最核心的地方,函数的原型对象为对象字面量
_f.prototype = obj;
return new _f;
}
//先声明一个对象字面量
var Person = {
name: 'Darren',
getName: function() {
return this.name;
}
}
//不需要定义一个Person的子类,只要执行一次克隆即可
var Programmer = clone(Person);
//可以直接获得Person提供的默认值,也可以添加或者修改属性和方法
alert(Programmer.getName())
Programmer.name = 'Darren2'
alert(Programmer.getName())
//声明子类,执行一次克隆即可
var Someone = clone(Programmer);

2,原型和原形有什么不同?

区别:
原型是事物的所指;
原形是指事物的本身;
原型是指原来的类型或模型,特指文学艺术作品中塑造人物形象所依据的现实生活中的人。
原形本来的形状,原来的形态,本来的状态。
“原形”指原来的形状,本来的面目,贬义,
如“政务一公开,这伙人原形毕露了”。
“原型”指原来的类型或模型,特指叙事性文学作品塑造人物形象所依据的现实生活中的人,
如“这可能就是作者的创作原型”。

3,什么是动词原形

与助动词或情态动词do, does, did, shall, will, should, would, may, might, have to, must, need, ought to等一起构成谓语的动词时,要用原形。

在现行的初中英语教材中,大致有以下十种情况使用动词原形:
Do you like English? 你喜欢英语吗?
May I use your telephone? 我可以用你的电话吗?
We must study hard and make progress every day. 我们必须好好学习,天天向上。
Shall we tell her to wait? 我们要不要告诉她等一下?
2.祈使句的谓语动词,要用原形。如:
Close the door behind you, please. 请随手关上门。
Don't make a noise. 别吵闹。
Let's live in peace and friendship. 让我们生活在和平和友谊之中。
3.感官动词look at, see, watch, notice, listen to, hear, feel等的宾语与其补足语构成逻辑上的主谓关系,表示动作的最后结果或全过程时,作宾语补足语的动词要用原形。但改成被动语态要带to。如:
I saw the train come into the station. 我看见火车进站了。
I heard a letter drop.(A letter was heard to drop.) 我听到信掉了下去。
4.使役动词let, have, make后的宾语与作宾语补足语的动词构成逻辑上的主谓关系时,这个动词要用原形。但改成被动语态要带to;let后的动词可不带to, 如:
He let Jack lead the way. 他让杰克在前面带路。
Have him send the letter. 叫他把信送去。
His jokes made us all laugh. 他的笑话使我们都大笑起来。
Everyone must be made to know nobody should break the law.
应使每个人都知道,谁也不得违法。
5.两个以上的并列不定式用and或or连接起来,第二个不定式常省去to。如:
Let's go and play football.我们去踢球。
It is fun to jump into pool or go swimming in a river in summer.
在夏天跳进游泳池或江河里去游泳是很有趣的。
6.在why not…和why…句型中,not和why后直接跟动词原形,构成反问,表示“建议、劝告、责备或提醒”等。如:
Why not use my bicycle? 为什么不用我的自行车呢?
Why waste so much money? 为什么要浪费那么多钱呢?
7.动词help后是复合宾语,其宾语补足语由动词充当时,这个动词前带to或不带to都可,但在被动语态中必须带to。如:
She helped me (to) clean the room.
(I was helped to clean the room byher.)他帮我打扫房间。
8. do ,does[1] ,did与动词原形连用,以加强语气,不但可以用在祈使句中,而且也可用在一般现在时和一般过去时的肯定陈述句中。如:
Do be careful! 一定要当心!
She does look nice today. 她今天看起来的确漂亮。
I did think he was wrong. 我的确认为他错了。
9.不定式作介词but和except的宾语,当其前有实意动词do时,后面的动词不定式要省略to。如:
Jack had nothing to do but/except watch TV. 杰克除了看电视外无事可做。
10.在一些固定的句型中,如had better(最好),would rather (宁愿),would rather…than…(宁愿…而不)等后面的动词要用原形。如:
You had better have a good rest. 你最好好好休息一下。
He would rather go to work by bike. 他宁愿骑自行车去上班。
As a revolutionary,he would rather die with his head high than live with his knees bent. 作为革命者,他宁愿昂首而死,而不愿屈膝求生。