前端开发面试Js:prototype

比较好用的前端开发工具|对外页面前端开发|前端开发需要多大内存?

prototype [美][ˈproʊtətaɪp] 脯肉特太婆(请原谅我拙计的英语)
n.原型,雏形,蓝本;

原型这个翻译好中庸啊,试着叫点别的,对象的雏形(一股文艺范),对象的蓝本(高大上)。

然并卵,还是得叫原型,才能和小伙伴愉快的交流。

分割线

下面正式进入主题

每个Javascript对象(Object.prototype和null除外)都从原型里继承属性

初看这句话并没有什么很深的感触,所以拆分一下,js对象 <–属性– 原型

故事就这样发生了,duang,duang,duang!

主人公: 小风(请接受我无耻的卖萌)

1、js对象
[code]<script>
var dog = {};
</script>[/code]
这是一只刚出生的小狗,小风还没有来得及为他起名,当然,这个小家伙自己,也是迷迷糊糊,懵懵懂懂

2、属性
新生的喜悦总会让人怀旧,主人想起了儿时的动画片,那只像棉花糖一般的可爱小狗,起了一个好听的名字
[code]<script>
dog.name = ‘小白’;
</script>[/code]
是时候教他唱一首熟悉的歌谣了,小风默默地想到
[code]<script>
dog.song = ‘大象,大象,你的鼻子为什么那么长?!’;
</script>[/code]
费了九牛二虎加吃奶的努力,小白终于get了新技能
[code]<script>
dog.sing = function(){
console.log(this.song);
};
</script>[/code]

3、原型
时光总是把人抛,小白生了小小白,小小白生了小小小白,每次都要教他们唱歌,实在是太累了
[code]<script>
function Dog(name){
this.name = name;
this.song = ‘大象,大象,你的鼻子为什么那么长?!’;
}
Dog.prototype.sing = function(){
console.log(this.song);
}
</script>[/code]

对象可以从原型中继承属性,

所以小小白们在出生时,
[code]<script>
var dogn = new Dog(‘我也不知道是第多少只小白了’);
</script>[/code]

便get了sing这个新技能。
[code]<script>
dogn.sing(); //console.log(‘大象,大象,你的鼻子为什么那么长?!’);
</script>[/code]

而且只要他们愿意,他们可以自由的歌唱
[code]<script>
dogn.song = ‘想唱就唱,我就是我,不一样的烟火~~~~’;
dogn.sing();
</script>[/code]

web前端开发需要掌握的技术|软件开发是web前端?|前端页面开发问题

赞(0)
前端开发者 » 前端开发面试Js:prototype
64K

评论 抢沙发

评论前必须登录!