1、this误区

# 第三方学习
http://www.cnblogs.com/wangfupeng1988/p/3988422.html

- this不是函数自身的引用,this实际上是在函数被调用时建立的一个绑定,它指向什么,完全是由函数调用者来决定的。

看一个this和new相关的例子,也能很好的说明情况:

var Person = function(name) {
// this 指向当前创建的实例
  this.name = name;
};
// 实例化一个Person(通过new实例化时,此时的this指向alice这个对象.你可以打印出来测试一下)
var alice = new Person('alice'); // 不要这么做!这个函数只会返回undefined,并且执行上下文是window(全局)对象,你无意间创建了一个全局变量name。
Person('bob'); //=> undefined 

2、new、prototype的理解

#第三方教程
http://blog.csdn.net/zhoutaohenan/article/details/8641551

#幕课网:创建对象和原型链
http://www.imooc.com/video/6001
var person = function () {};

var p = new person(); 

很简单的一段代码,我们来看看这个new究竟做了什么?我们可以把new的过程等价于以下三步:

   // 创建一个空对象

1、var p = {};

// 可以通过运行 alert( p.__proto__ === person.prototype ) 来验证。结果返回true

2、p.__proto__ = person.prototype;

// 通过这一步,p可以调用person中的属性或函数

3、person.call(p);

当我们调用p.【属性/方法】 的时候,首先p中没有这个【属性/方法】,如果没有就会去__proto__中去找,也就是Person.prototype

而这个 Person.prototype 称为 __proto__ 的原型

Person.prototype事实上还有一个原型:Object.prototype,这个原型的作用是什么呢?

我们注意到任何一个对象都具有.toString()等方法,这其实就是来源于这个原型。

而 Object.prototype 又指向了最终一个原型,就是NULL。

这个过程就是原型链

3、js面向对象:实例方法和静态方法

什么是实例方法?简单的来说就是必须实例化类对象才可以调用的方法,如:

var people= function () {};

people.prototype = {
  init:function(){
   alert("init")
  },
  show:function(){
   alert("show")
  }
} //VM1008:1 Uncaught TypeError: people.init is not a function(…)
people.init() var p = new people();
p.init();

什么是静态方法?不需要实例化类就可以直接调用,如:

var people = function(){};

people.test = function(){
alert("123");
} people.test();

4、js的封装闭包

(function(){

    // declare private variables and/or functions

    return {
// declare private variables and/or functions
} })()

5、js的设计模式

待整理...

js - 关于this、new、原型的更多相关文章

  1. TouchPoint.js – 可视化展示 HTML 原型点击效果

    TouchPoint.js 是一个用于 HTML 原型展示的 JavaScript 库(作为UX过程的一部分),通过视觉表现用户在屏幕上的点击.TouchPoint 是高度可定制,非常适合屏幕录制,用 ...

  2. jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

    这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...

  3. JS对象中的原型

    对象的原型:每个对象都连接一个原型对象,并且它可以从中继承属性.所有通过对象字面量创建的对象都连接到object.prototype.当你创建一个新对象时,你可以选择某个对象作为它的原型.原型连接在更 ...

  4. js经典试题之原型与继承

    js经典试题之原型与继承 1:以下代码中hasOwnProperty的作用是? var obj={} …….. obj.hasOwnProperty("val") 答案:判断obj ...

  5. 前端总结·基础篇·JS(一)原型、原型链、构造函数和字符串(String)

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  6. JS基础——构造函数VS原型

    JS是一种基于对象的语言.在使用过程中不免遇到复制对象的问题.但通常我们採用的直接赋值'obj1=obj2'这样的做法会出现数据覆盖问题. 也就是对象引用过程中引用地址一致.导致对象数据被改动的问题. ...

  7. JS 面向对象、prototype原型的克隆

    JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...

  8. JS创建对象、继承原型、ES6中class继承

    面向对象编程:java中对象的两个基本概念:1.类:类是对象的模板,比如说Leader 这个是泛称领导,并不特指谁.2:实例:实例是根据类创建的对象,根据类Leader可以创建出很多实例:liyi,y ...

  9. 《JS高程》对象&原型学习笔记

    ECMA-262 把对象定义为:”无序属性的集合,其属性可以包含基本值.对象或者函数.”可以把 ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数.   6.1.理解 ...

  10. 深入JS第一天:原型和它的小伙伴们(一)

    我在这里不说定义,找点问题,再解决问题. 一.原型 Q1:这样做输出的结果是什么? jQuery= String; jQuery.prototype.say = function () { alert ...

随机推荐

  1. Manthan, Codefest 16 H. Fibonacci-ish II 大力出奇迹 莫队 线段树 矩阵

    H. Fibonacci-ish II 题目连接: http://codeforces.com/contest/633/problem/H Description Yash is finally ti ...

  2. Flash&Flex大全

    官方在线帮助(没标英文的都是中文) 用于 Adobe Flash Platform 的 ActionScript 3.0 参考 更多参考使这样的链接下载离线版:http://help.adobe.co ...

  3. \r和\n的区别

    /n  是换行/r   是回车 这是两码事,换行是指移动到下一行,回车是指移动到行首,我们通常所说的“回车”其实是这两个动作的结合.

  4. ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数) 1.A,示例(Sample) 返回顶 ...

  5. jsp页面数据回显(select下拉选择框)

    1.静态变量方式: <!-- 实现select标签回显 --> 1.<select name="curStatus" value="${curStatu ...

  6. easyui中combotree只能选子选项,父级不被选中

    前言 前几天面试遇到一个需求(easyui中combotree只能选子选项,父级不被选中),回来特意整理下,大概的思想是如果该tree的节点被选中是判定一下是否有子节点,如果没有就说明是最终节点了,步 ...

  7. Notepad++的使用

    \t 制表符.  \n 新行.  . 匹配任意字符.  | 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc&quo ...

  8. 常用HTML标签的全称及描述

    常用HTML标签的英文全称及简单描述   HTML标签 英文全称 中文释义 a Anchor 锚 abbr Abbreviation 缩写词 acronym Acronym 取首字母的缩写词 addr ...

  9. Js和html相结合的方式

    目录  TOC \o "1-3" \h \z \u js和html相结合的方式. PAGEREF _Toc455386178 \h 1 08D0C9EA79F9BACE118C82 ...

  10. vue - dist

    描述:打包后准备上线的文件(需要服务器环境才能运行!!!)