一、对象(Object) 1.1 认识对象 对象在JS中狭义对象、广义对象两种。 广义:相当于宏观概念,是狭义内容的升华,高度的提升,范围的拓展。狭义:相当于微观概念,什么是“狭”?因为内容狭隘具体,范围窄所以称为“狭” l 狭义对象 就是用{}这种字面量的形式定义的对象,它是一组属性的无序集合var obj = {name : "小明",age : 12,sex : "男",hobby : ["足球","刺绣","打麻将"] } 上面这个对象,表示一个“人”里面有4个属性,换...
Javascript 面向对象编程(一):封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢? 一、 生成实例对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性...
一、继承的概念 子类共享父类的数据和方法的行为,就叫继承。 二、E55如何实现继承?探索JavaScript继承的本质2.1构造函数之间的“复制粘贴”第一条路是通过构造函数来继承,这可以理解为子类直接复制了父类构造函数的代码,然后按照一定的规矩“粘贴”在自己的构造函数中,为己所用。举个例子:如果A要继承B的属性,是不是直接把this.name = name复制粘贴到A函数就可以了?简单粗暴。所以在A中,直接执行B函数,不就等于执行了...
第六章——面向对象的程序设计 这一章主要讲述了:面向对象的语言由于没有类/接口情况下工作的几种模式以及面向对象语言的继承: 模式:工厂模式,构造函数模式,原型模式 继承:原型式继承,寄生式继承,以及寄生组合式继承
简单介绍: 此部分知识为在做云笔记项目中补充,因为云笔记项目中涉及到前端js,里面写了很多js脚本,用到了创建js属性和方法,在js中直接声明的属性和方法最终都会变成window的对象,即其成为了全局变量,可以在控制台直接调用。 (1)如何创建js对象 1 JSON语法声明对象(直接量声明语法)-->var obj={} 2 使用Object创建对象 -->var obj=new Object() (2) js对象可以后期添加属性 1 var obj={}; obj.name="tom"; 这样可以使...
组合继承 组合继承,有时候也叫做伪经典继承。 指的是将原型链和借用构造函数的技术组合到一块,从而发挥二者之长的一种继承模式。其背后的思想是使用原型链实现对原型属性和方法的继承,而通过借用构造函数实现对实例属性的继承。实现方式如下:function SuperType(name) {this.name = name;this.colors = ["red", "blue", "green"]; }SuperType.prototype.sayName = function() {console.log(this.name); }function SubType(name...
JavaScript面向对象JavaScript 语言使用构造函数(constructor)作为对象的模板。所谓”构造函数”,就是专门用来生成实例对象的函数。它就是对象的模板,描述实例对象的基本结构。一个构造函数,可以生成多个实例对象,这些实例对象都有相同的结构构造函数的首字母大写,区分一般函数。 函数体内部使用了this关键字,代表了所要生成的对象实例。 生成对象的时候,必须使用new命令。 构造函数内部使用严格模式 use strict,防止当做...
person1.cunstructor == Person:构造函数的实例的指向 (true/false)person1 instanceof Object:检测对象类型是否属于object(true/false)person1 instanceof Person:检测对象类型是否属于构造函数(true/false) var arr = [];arr instanceof Array:(true) //标识数组 1、标识构造函数对象实例的类型 对象实例.constructor == 构造函数对象1 function Person(name, age, job){ 2 this.name = name; 3 this.age = age...
前 言 上一篇博客(https://www.cnblogs.com/qdjianghao/p/10177360.html )中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题。本篇博客,我们继续来学习JS的面向对象。来深入理解一下JavaScript OOP中的成员属性/方法、静态属性/方法、原型属性/方法,并且一起来探讨一下JS中的原型与原型链。 一 成员属性与成员方法 在构造函数中,通过this.属性声明。或者实例化出对象后,通过“对象.属性”追加的。都属于成员属...
JavaScript中的面向对象是个老生常谈的话题,但是依然有很多小伙伴处于懵逼状态。面试时候最担心的就是被问到面向对象相关的内容,自己看过无数的资料,依然对面向对象百思不得其解。到底什么是原型?什么是构造函数?什么是继承。。。一提到这些概念那真是欲哭无泪、悲愤交加,甚至恨的直咬牙!所以有必要谈一次面向对象。 对象在生活中指的是女朋友或者男朋友,而在JavaScript里说的通俗一点就是一个放了很多属性与方法的集合,有...
面向对象: 1. 一切事物皆是对象 2. 对象具有封装和继承特性 3. 信息隐藏,(类,属性,方法的隐藏) 一、基本面向对象 直接定义对象:二、函数构造器构造对象 构造器构造对象三、深入JavaScript面向对象 最简单的事例:下面加深理解,给student添加say方法,看看会出现什么情况?由此可见,子类覆盖了父类的say方法,那么,假如这种情况下,我就是要调用父类的say方法,那又该怎么办呢?//执行结果 //先输出hello 在输出student ...
1.javascript基本数据类型: number: 数值类型 string: 字符串类型 boolean: 布尔类型 null: 空类型 undefault:未定义类型 object: 基本数据类型的父类 2.创建对象 (1)自定义对象: 语法:var 对象名=new object(); 例: var flower=new Object(); flower.name="长春花"; flower.showName=function(){ // this.name="牡丹花";//重新赋值 ...
面向对象 一、属性与方法 //创建一个对象 var obj = {}; | var obj = new Object(); // 属性 obj['name'] = '大毛'; | obj.name = '大毛'; // 方法 obj.func = function () {//body.... } // 删除属性与方法 delete obj.prop delete obj.func 关于之前的变量污染的问题,可以通过对象来解决 // 学习目的:对象的(临时)属性可以帮助存储临时数据,因为临时数据的生命周期往往很短.需要提示临时数据的生命周期 // 临时数据会随属性的消...
创建对象的几种方式1.使用Object或对象字面量创建对象var student = new Object(); student.name = "abc"; student.age = 20; 2.工厂模式创建对象function createStudent(name,age){var student = new Object();student.name = name;student.age = age;return student; }var student1 = createStudent("aaa",20); var student2 = createStudent("bbb",21); 3.构造函数模式创建对象function Student(name,age){this.name = ...
面向对象,就是给对象添加属性,通过对象的属性完成需求。 一个简单的例子,创建一个对象,并给对象添加属性。 var obj = new Object(); obj.name = tom; obj.age = 18; obj.showName = function(){return this.name; }; obj.showAge = function(){return this.age; }; 一封装 进行函数封装,就变成了工厂模式 function person(name,age){//原料var obj = new Object(); //加工 obj.name = name;obj.age = age;obj.showName = fun...