• js


    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的设计模式

    待整理...

  • 相关阅读:
    JavaBean
    J2EE的13个规范
    IntelliJ IDEA 常用快捷键列表及技巧大全
    服务端工程师入门与进阶 Java 版
    新兵训练营课程——环境与工具Java[转]
    asp.net 局域网中获取 client的机器名
    css 阻止元素中的文本。双击选中
    正则实践
    jq dom不存在时绑定事件
    正则预查
  • 原文地址:https://www.cnblogs.com/CyLee/p/6285488.html
Copyright © 2020-2023  润新知