JavaScript笔记 (原型链闭包)

JavaScript笔记

1.JS在对象实例化过程中会执行构造函数

2.三个常用关键字:

1.constructor 返回对象构造器

2.typeof 返回数据类型

3.instanceof 判断对象是否是某个类的实例

3.对象传递是引用 名字存在堆中(小),属性方法存在栈中(大)

4.function test()

{this.i=10;}

var i=15;   //winddow.i=15;

test();   //window.i=10;

alert(this.i);  //aler(window.i)  输出结果为 i=10

5.将对象作为参数,将对象作为返回值,都是地址的传递

6.用for in循环对象的属性

for(var i in b)

{

    document.write(i+':'+b[i]+'<br>');

}

7.文本下标的数组不计入length

8.delete清除一个对象的属性

9.json是一个属性/属性名 成对出现的对象  是object类的实例

定义一个数组保存多个人信息 var p=[{},{},{}];

10.面向对象时对象实例尽量定义为全局变量,对象方法中有的变量可以定义为对象属性,可以使用数组来存取同一物体的不同属性

11.作用域链和原型链

12.取消事件冒泡用oEvent.cancelBubble=true;

13.IE8一下取消默认事件用 oEvent.returnValue=false;

     其他的用oEvent.preventDefault(); 

     统一处理:return false;

14.setTimerout()执行一次   setInterval()反复执行

15.hasOwnProperty('属性') 返回值是布尔,判断对象是否存在某个属性

16.全局变量会一直保留,局部变量运行完后会被回收

17.

    在构造器中,this.属性相当于公有属性,外部可以访问

    var定义的相当于私有属性,但是执行完对象实例化后,var定义的会被回收,所以要用闭包

   于是用this.方法调用var 定义的属性,则实现了闭包,var定义的属性不会被回收

   如果该属性只有get方法,说明该属性只读

   如果该属性只有set方法,说明该属性只写

18.闭包

    function a()

        {

            var i=10;

            this.show=function()

            {

                alert(i++)

            };

        }

      var b=new a();

      b.show();    //11

      b.show();    //12

      b.show();     //13

      b.show();

19.模拟继承的方法:

1.扩展object  

      Object.prototype.ext=function(parObject)

  {

      for(var i in parObject)

      {

      this[i]=parObject[i];

       }

   };

2.用call 和apply 

   function b()

   {  

      a.call(this);

      this.say=function()

      {

          alert(this.x+this.y);

      }

   }

3.原型继承

子类.prototype=new 父类();

20.静态方法和实例方法

静态方法:类可以直接调用

实例方法:方法定义在原型上,需要创建实例再调用

function A()

{

A.sayMeS=function(){

console.log("Hello World S!");

}

A.sayMeS();//输出Hello World S!

实例方法:

function A()

{

A.prototype.sayMeE=function(){

console.log("Hello World E!");

}

var a=new A();

a.sayMeE();//输出Hello World E!

二者的区别:

从定义上,实例方法要用到function这个对象中的prototype属性来定义,静态方法通过A.直接定义;从方法调用上,静态方法可以直接通过A.来调用,实例方法要通过先定义一个引用变量,指向构造函数定义的新对象。 

--------------------------------------------------------------------------------------

js遗漏笔记

S中for each只能遍历数组,不能遍历伪数组

foreach(function(value,index){})

;

JS中map也只能遍历数组,不能便利伪数组

arr.map(function(value,index,array){});

任何对象都有属性,只有dom对象才有属性节点

setAttribute设置属性节点的值

getAttrbute获取属性节点的值

改变父元素的透明度但是不改子元素的

用RGB(0,0,0,0.4)

一个元素指定多个 class 时,class 的优先级与指定顺序无关,而是和 class 的定义顺序有关。

将伪数组转换成真数组

如果slice()不传参数,会将数组中的元素放到一个新的数组中返回

var arr=[].slice.call(obj);

将真数组转换成伪数组(将自定义伪数组转换成伪数组还是真数组,都要先利用slice 转换成真数组)

[].push.apply(obj,arr); 

document.querySelectorAll(selector)系统根据传入的选择器自动选择

extend 将子类的方法复制到原型里这样可以通过原型调用

for(var key in obj)

        {

            this[key]=obj[key]

        }

获得dom元素的属性节点的值 getAttribute  设置:setAttribute

each里面return true相当于congtinue  false相当于break

一般同addEventListener添加事件监听,IE8及一下用attachEvent 同时第一个参数事件要手动加上on

低版本浏览器同一个元素添加的相同事件执行顺序与添加顺序相反,可以用一个对象里面存存着数组来实现顺序调用

例如:catch{click:[test(),test2()],

             mouseover:[test3(),test4()]}

原生JS中cloneNode是浅复制,不能复制事件

window.loacation.hash=2 可以种hash值  在url后面加上一个#2

得到hash: console.log(window.location.hash.substring())   //  2

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,761评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,067评论 1 10
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,197评论 0 3
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,128评论 0 21
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,486评论 1 45