因工作需要需要学习JavaScript 参考书主要为《JavaScript语言精粹》以及《JavaScript权威指南》现来总结学习经验。
关于对象继承的一个问题.
父类Fruit
//水果對象 有這幾個屬性name,color,weight,shape
//提供了對應的set 和 get方法,只對子類提供方法,不提供相應的屬性接口,
function Fruit(){
//console.log(this);
this.color = this.color||'';
this.name = this.name||"fruit";
this.weight = this.weight||0 + '千克';
this.shape = this.shape||'';
this.set_name = function(name){
this.name=name;
};
this.get_name = function(){
return this.name;
};
this.set_color = function(color){
this.color=color;
};
this.get_color = function (){
return this.color;
};
this.set_shape = function(shape){
this.shape = shape;
};
this.get_shape = function(){
return this.shape;
};
this.get_weight = function(){
return this.weight;
};
this.set_weight = function(weight){
this.weight=weight;
};
this.message = function(){
return "名稱為: " + this.get_name()+";\n"+"顏色為: "+this.get_color()+";\n"+"重量為: "+this.get_weight()+";\n"+"形狀為: "+this.get_shape()+";\n"
};
}
//javaScript中实现继承有多种方法,冒充对象,call(),apply()方法 以及通过原型链 prototype
子类 apple
有三种方法进行继承
function Apple(){
//方法一 1 apply()方法
// Fruit.apply(this,new Array());
//方法一 2 apply()
Fruit.apply(this,arguments);
//方法二 call() 方法
// Fruit.call(this);
//方法三 对象冒充
// this.newApple= Fruit;
// this.newApple();
// delete this.newApple;
this.tree = '蘋果是長在蘋果樹上';
this.name1 = this.name;
this.detail = function(){
return this.message()+this.tree;
};
//當我把detail當做一個屬性,把父类方法的返回值赋给detail是,結果是不合理的,
this.detail2 = this.message()+ this.tree;
this.get_detail2 = function(){
return this.detail2+"\n";
};
}
赋值
var apple=new Apple();
apple.set_name('apple');
apple.set_weight(0.5);
apple.set_shape('圓形');
apple.set_color('red');
console.log("這是調用Fruit的message()方法 \n"+apple.message());
/*
結果為
這是調用Fruit的 message()方法
名稱為: apple;
顏色為: red;
重量為: 0.5;
形狀為: 圓形;
*/
console.log("這是調用apple的detail()方法 \n"+apple.detail());
/*
這是調用apple的 detail()方法
名稱為: apple;
顏色為: red;
重量為: 0.5;
形狀為: 圓形;
蘋果是長在蘋果樹上
*/
console.log("這是調用apple的detail1的屬性 \n"+apple.detail2);
/*這是調用apple的 detail1的屬性
* 名稱為: fruit;
*顏色為: ;
*重量為: 0千克;
*形狀為: ;
*蘋果是長在蘋果樹上
*/
console.log("這是調用apple的get_detail1()的方法 \n"+apple.get_detail2());
思路方法是:
个人觉得是实例化的时候detail2 属性是为空,所以当直接调用detail2 属性时,结果apply的各项属性也是为空.解决方法是通过子类新建一个方法对其detail2的值进行更新
this.detail2 = "";
this.get_detail2 = function(){
this.detail2 = this.message()+ this.tree;
return this.detail2;
};
//扩充 通过原型链prototype实现继承
function ClassA(){
ClassA.prototype.name = 'jack';
}
ClassA.prototype.set_name = function(name){
this.name = name;
};
ClassA.prototype.get_name = function(){
return this.name;
};
function ClassB(){
ClassB.prototype = new ClassA();
console.log(ClassB.prototype.get_name());
}
ClassB();
分享到:
相关推荐
在JavaScript中,对象是核心概念之一,它们是无序...学习和掌握JavaScript对象的创建、属性访问以及原型机制,对于深入理解和使用JavaScript至关重要。理解并熟练运用这些知识点,可以有效地构建复杂的应用程序和组件。
本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...
本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...
这篇学习笔记主要涵盖了JavaScript的基础语法和客户端JavaScript的相关知识。 1. **JavaScript基本语法**: - **变量声明**:未声明的变量尝试读取时会产生错误,而写入未声明的变量会创建一个全局变量。 - **...
这份"javascript入门学习笔记"旨在为初学者提供一个全面且深入的JavaScript学习路径。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符、流程控制等。变量用于存储数据,数据类型分为基本类型(如字符串...
总结一下,JavaScript面向对象编程主要包括类的表示(通过构造函数)、对象的创建(对象工厂、构造函数、原型模式)以及继承的实现(原型链)。理解这些概念对于深入学习JavaScript和开发复杂的JavaScript应用至关...
根据提供的文件信息,可以看出这份“我的javascript学习笔记”主要涵盖了JavaScript中的几个关键概念和技术要点,包括正则表达式、AJAX以及一些JavaScript的核心语言特性。接下来将这些知识点进行详细的整理和解释。...
这个“javaScript学习笔记.rar”压缩包显然包含了作者在学习JavaScript过程中的心得和记录,对于初学者或者想要深入理解JavaScript的人来说,是一份宝贵的资源。 JavaScript与Java虽然名字相似,但两者实际上是不同...
这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...
JavaScript 基础学习笔记 本资源摘要信息基于黑马视频记录的学习笔记,涵盖了 JavaScript 基础知识点,包括 HTML、CSS、JavaScript、DOM、事件处理等内容。 HTML 和 CSS 基础 * HTML 结构:head、body、title、...
本学习笔记全面涵盖了JavaScript的语法和用法,旨在帮助初学者快速掌握并深入理解这门语言。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符和流程控制。变量在JavaScript中使用`let`、`const`和`var`...
总结,JavaScript的面向对象编程主要涉及到构造函数、属性、方法、this关键字、原型链以及封装和继承等概念。理解这些基础是编写高效、可维护的JavaScript代码的关键。在实践中,开发者还需要考虑作用域、闭包、异步...
个人在学习前端JavaScript时的学习笔记,内含JavaScript的中基础知识点,以及案例。里面有兼容市面上浏览器的方法 1.知识点包括:基础语法,字符串操作,object对象,DOM对象,BOM对象,offset,client,scroll对象...
JavaScript是一种广泛应用...以上就是JavaScript学习笔记中的主要知识点,理解和掌握这些内容对于深入学习JavaScript至关重要。在实际编程中,还需要结合具体的场景灵活运用,并不断实践和探索更高级的特性和最佳实践。
《李炎恢Javascript笔记》是一本深入浅出的JavaScript学习资料,它涵盖了JavaScript的基础到实践应用的诸多方面。这本书的特点是将复杂的编程概念分解为易于理解的小知识点,并且提供了源码示例,使得读者能够更好地...
### JavaScript基础教程笔记知识点 #### 一、JavaScript简介 - **定义**:JavaScript是一种轻量级的编程语言,主要用于Web浏览器中的网页交互控制。 - **发展历史**:1995年由Netscape公司的Brendan Eich设计并...
总之,JavaScript学习笔记涵盖了从基础语法到高级特性的广泛内容,包括数据类型、控制结构、函数、对象、数组、DOM操作、事件处理、错误处理、异步编程以及其在Web开发中的实际应用。通过深入学习这些知识点,你将...
这份"javascript学习笔记"深入探讨了JavaScript的核心概念和实际应用,特别关注了DOM(Document Object Model)操作这一重要领域。 JavaScript是ECMAScript规范的实现,它允许我们在浏览器环境中动态地操作网页内容...