1、this指向问题,指向的是当前的方法属于谁,当前的方法属于谁就指向谁!!

例子:

oDiv.onclick = function () {

this指向的是oDiv,因为这个方法属于oDiv

}

var obj = new Object();  //构造对象

obj.show=function(){

    this====>>这时候的函数属于obj,所以this指向的是obj这个对象

}

Tab.prototype.show=function(){

     alert(this)这时候this指向的是后面new Tab函数的实例对象

}

被定时器调用的this都是指向window,事件的话指向事件====》》这时候使用_this来修改指向问题

2、函数的形式

函数:

方法:

事件处理函数:

构造函数==》函数用来构造对象叫什么构造函数!!!(首字母大写)

3、构造函数

用工厂方式构造对象

工厂方式的问题:

1、没有new

2、每个对象都有一套自己的函数---浪费资源

this:当前的方法属于谁就指谁

函数前面有new的时候,会创建一个新的object,这时候this指向的是这个object

全局函数,this指向的是window,new show()指向是object(使用new函数时系统会在函数内部创建一个对象)!!

4、原型prototype

类比:

prototype  ====》》class  改变一类元素的样式

给一个对象加方法  ===》》行间样式  改变一个元素的样式

var arr1 = new Array(12, 5, 8, 4);

var arr2=new Array(44, 6,5,4);

Array.prototype.sum=function(){}  这样arr1跟arr2都有sum这个方法

arr1.prototype.sum=function(){}  这样只有arr1有sum这个方法,arr2没有

类                    模子

对象(实例)     蛋糕

var arr=new Array();

Array类  不具备实际的功能,只能用来构造对象

arr对象  真正有功能的东西,被类给构造出来的东西

类就是构造函数 Array是类,arr是构造函数

prototype就是在原类的基础上进行方法扩展,用元素来给构造函数增加方法!

总结

对象的组成  方法(函数) 属性(变量)

用构造函数来增加属性,每个对象的属性各不相同!!!

对象组成和继承对象:

1、属性

2、方法

继承:

1、先执行父级的构造函数,然后再添加子类的属性!!

注意!!当直接使用  Worker.prototype=Person.prototype;的方法来继承父级的方法时,子级跟父级指向同一个空间,因此修改子级的同时会修改父级,需要做如下修改!!

for( var i in Person.prototype)

{

    Worker.prototype[i]=Person.prototype[i];

}

常见面试题误区

引用

//指向同一个指针
var arr1=[、、];
var arr2=arr1;
arr2.push("");
alert(arr1)====>>1.2.3.4
//解析这时候arr2引用arr1,那么此时,arr2跟arr1是指向同一指针空间,所以其中一个改变,都会跟着发生改变 //指向不同指针
var arr1=[、、];
var arr2=[];
for(var i in arr1){
arr2[i]=arr1[i]; //循环赋值
} arr2.push(""); alert(arr1) ====>>、、

javascript面向对象学习的更多相关文章

  1. JavaScript面向对象学习笔记

    JavaScript 常被描述为一种基于原型的语言 (prototype-based language)--每个对象拥有一个原型对象,对象以其原型为模板.从原型继承方法和属性.原型对象也可能拥有原型, ...

  2. javascript面向对象学习(一)

    面向对向的初体验 创建一个标签 // 传统 var p = document.createElement('p'); var txt = document.createTextNode('我是传统js ...

  3. javascript 面向对象学习(一)——构造函数

    最近在学习设计模式,找了很多资料也没有看懂,看到怀疑智商,怀疑人生,思来想去还是把锅甩到基础不够扎实上.虽然原型继承.闭包.构造函数也都有学习过,但理解得不够透彻,影响到后续提高.这次重新开始学习,一 ...

  4. javascript 面向对象学习(三)——this,bind、apply 和 call

    this 是 js 里绕不开的话题,也是非常容易混淆的概念,今天试着把它理一理. this 在非严格模式下,总是指向一个对象,在严格模式下可以是任意值,本文仅考虑非严格模式.记住它总是指向一个对象对于 ...

  5. javascript 面向对象学习(二)——原型与继承

    什么是原型? 首先我们创建一个简单的空对象,再把它打印出来 var example = {} console.log(example) 结果如下: { __proto__: { constructor ...

  6. javascript面向对象学习笔记——创建对象(转)

    工厂模式 该模值抽象了创建具体对象de过程.用函数来封装噫特定接口创建对象的细节. function createPerson(name,age,job){ var o=new Object(); o ...

  7. JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)

    一.动态原型模式 在面向对象学习六中的随笔中,了解到组合构造函数模式和原型模式创建的自定义类型可能最完善的!但是人无完人,代码亦是如此! 有其他oo语言经验的开发人员在看到独立的构造函数和原型时,很可 ...

  8. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  9. JavaScript学习总结(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

随机推荐

  1. java多线程api

    Object类相关api(相关的方法一定是当前线程在获取了对应的锁对象才能调用,否则会抛出异常) o.wait() :锁对象调用该方法使当前线程进入等待状态,并立刻释放锁对象,直到被其他线程唤醒进入等 ...

  2. CentOS 安装最新版本 Git

    查看默认 yum 源的 git版本 # 安装 yum install -y git # 查看版本 git version # git version 1.8.3.1 参看官网,CentOS 安装新版本 ...

  3. 从Paxos到Zookeeper分布式一致性原理与实践 读书笔记之(一) 分布式架构

    1.1 从集中式到分布式 1 集中式特点 结构简单,无需考虑对多个节点的部署和节点之间的协作. 2  分布式特点 分不性:在时间可空间上随意分布,机器的分布情况随时变动 对等性:计算机之间没有主从之分 ...

  4. 关于Mui严格模式下的报错解决方案

    前言:作为一名程序员遇到Bug总是在所难免的,但是记住"不二过",今天在Vue开发中遇到了一个报错让我纠结了许久,找了许久, 报错的原因是使用了mui导入其js文件导致的. 报错信 ...

  5. java深copy (伪深copy)【原】

    Teacher.java package test.clone; /** * 老师 * 深copy需要实现Cloneable接口 * @author King * */ public class Te ...

  6. Bootstrap Web框架

    Bootstrap 一.简介 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的 ...

  7. Mongoose笔记

    Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具 mongoose是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的.增删改查等方法 使用Ko ...

  8. GIT与SVN的比较

    Git: 1. 分布式版本控制2. 不需要网络,本地就可以操作版本控制3. 可以是公用的,可以分享4. 不依赖于中央服务器,即使服务器有问题也不会有影响5. 传输方式不一样,git要比svn快很多6. ...

  9. Elasticsearch入门实践

    官网:https://www.elastic.co/ 下载:https://www.elastic.co/downloads/elasticsearch 文档:https://www.elastic. ...

  10. 细说tomcat之集群session共享方案

    1. Tomcat Cluster官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案,通过组播消息 ...