构造伪类来继承Mammal,通过定义它的constructor函数并替换它的prototype为一个mammal的实例来实现
var Mammal = function(name) {
this.name = name;
};
Mammal.prototype.get_name = function() {
return this.name;
};
Mammal.prototype.says = function() {
return this.saying || '';
};
var Girl = function(name) {
this.name = name;
this.saying = 'you';
//this.girl = 'fang';
};
Girl.prototype = new Mammal();
Girl.prototype.girl = function() {
return 'fang';
};
Girl.prototype.purr = function(n) {
var i, s = '';
for (i = 0; i < n; i++) {
if (s) {
s += '-';
}
s += 'r';
}
return s;
};
Girl.prototype.get_name = function() {
return this.says() + ' ' + this.name + ' ' + this.girl();
};
var myGirl= new Girl('love');
var says = myGirl.says();
var purr = myGirl.purr(5);
var name = myGirl.get_name();
document.writeln(' ' + says + ' ' + purr + ' ' + name + ' ');
原型 差异化继承
if (typeof Object.beget !== 'function') {
Object.beget = function(o) {
var F = function() {
};
F.prototype = o;
return new F();
}
};
var myPeople = {
name : 'qiang love fang',
get_name : function() {
return this.name;
},
says : function() {
return this.saying || '';
}
};
var myGirl=Object.beget(myPeople);
myGirl.name='fang';
myGirl.saying='love';
myGirl.purr=function(n){
var i,s='';
for(i=0;i<n;i++){
if(s){s+='-'}
s+='r';
}
return s;
};
myGirl.get_name=function(){
return this.says()+' '+this.name+' '+this.says();
};
var name=myGirl.get_name();
document.writeln(name);
分享到:
相关推荐
在这个原型中,可能包含了CSS类选择器、ID选择器、伪类和伪元素的应用,以及响应式设计(Responsive Design)的实现,确保页面在不同设备上都能良好显示。 3. JavaScript交互: 考勤管理系统往往需要动态交互功能,...
这个“css2和javascript学习教程”压缩包包含了对这两个主题的深入学习资源,帮助初学者和进阶者提升技能。 CSS2是网页样式表语言的第二版本,它极大地增强了网页设计的灵活性和控制力。CSS2的核心知识点包括: 1....
4. **Vue.js、React.js等前端框架**:在这些现代前端框架中,可以通过状态管理来控制tabs的切换,同时框架自带的过渡动画库可以实现平滑的切换效果。 在实现tabs选项卡时,需要注意以下几点: - 保持一致性:各个...
在JavaScript中,面向对象编程是通过构造函数、原型链和继承实现的。继承是面向对象编程的核心概念之一,它允许我们创建一个新对象,该对象继承现有对象的属性和方法。在JavaScript中,实现继承有多种方式,每种方式...
在JavaScript编程语言中,`Object.prototype` 是一个特殊的...通过研究其源码,开发者不仅可以学习到如何在不破坏原型链的情况下扩展对象,还可以深入了解JavaScript的原型继承、对象创建以及兼容性处理等核心概念。
- **学习JavaScript数据结构与算法**:通过JavaScript学习数据结构(如数组、链表、栈、队列、树等)和算法(排序、搜索等),提升编程思维和解决问题的能力。 - **Head First JavaScript程序设计**:以轻松易懂的...
9. JavaScript高级特性:如闭包、原型链、this关键字、ES6及以上的新特性,如箭头函数、解构赋值、模板字符串等。 10. 实战项目:可能包括创建简单的动态网页、交互式表单、图片轮播、计时器等,帮助读者巩固理论...
6. **伪类与伪元素**:如:hover、:active、:focus等伪类,以及::before和::after伪元素,用于添加特殊样式。 7. **颜色和背景**:学习使用颜色值、渐变、背景图片等创建丰富的视觉效果。 8. **文字样式**:调整字体...
Java学习精品面试题涵盖了Java语言的基础知识和高级技术,包括CSS3新增的伪类、响应式布局的控制样式方式、获取DOM属性值的方法、数组操作、字符串操作、函数式编程、正则表达式、JSON对象、原型编程等。
7. **ES6及以后版本**:ECMAScript的新特性,如模板字符串、解构赋值、箭头函数、let和const、类和模块等,极大地提升了JavaScript的可读性和开发效率。 这两个文档——"CSS样式表.CHM"和"JScript 语言参考.chm"将...
总之,这份“js网页设计大赛作品”压缩包是一个绝佳的学习资源,它展示了JavaScript在网页设计中的多样性和强大能力,无论你是初学者还是有一定经验的开发者,都能从中汲取灵感,提升自己的技能。记得仔细研究每个...
通过深入学习并实践这些内容,你将能够熟练掌握JavaScript,并成为一名真正的JS小高手。在实际项目中,还需要结合最佳实践和最新的技术趋势,如React、Vue或Angular等前端框架,以提升开发效率和应用性能。
在《You Don't Know JS: this & Object Prototypes》一书中,作者Kyle Simpson深入探讨了JavaScript中的`this`关键字和对象原型机制。这本书不仅适合JavaScript新手,也适用于那些希望更深入理解语言核心特性的有...
3. **对象和原型**:理解面向对象编程,学习如何创建和使用对象及原型链。 4. **异步编程**:包括回调函数、Promise和async/await,解决JavaScript的非同步问题。 5. **JavaScript库和框架**:如jQuery、React、...
学习JavaScript,你需要理解变量、数据类型、控制流程、函数、对象和原型链等基础概念。同时,ES6(ECMAScript 6)的新特性如箭头函数、模板字符串、let/const、解构赋值、类和模块,也是现代JavaScript开发的重要...
JavaScript是Web开发中的核心语言,尤其在前端领域扮演着至关重要的角色。在JavaScript中,对象的原型链和继承是理解其面向对象编程的关键概念。...因此,不断学习和掌握新的JavaScript特性也是每个开发者必备的技能。
笔记可能包括选择器的使用(类选择器、ID选择器、伪类等)、盒模型(margin、padding、border、content)、布局技术(如Flexbox和Grid)、响应式设计(媒体查询`@media`)等内容。同时,CSS预处理器如Sass或Less也...
伪经典模式结合了构造函数和原型,提供了一种更接近类的语法结构。它通常通过`Object.create()`方法来实现,允许我们创建一个新的对象并继承另一个对象的原型: ```javascript var taxonomy = {name: 'Animal'};...