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

    待整理...

  • 相关阅读:
    MSSQL ADO.NET
    MSSQL 详解SQL Server连接(内连接、外连接、交叉连接)
    MSSQL DBOtherSQL
    java8时间转换成字符串
    泛型
    给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
    利用栈判断有效的括号
    回文数
    service层对 @NotBlank注解起作用
    集合的使用
  • 原文地址:https://www.cnblogs.com/CyLee/p/6285488.html
Copyright © 2020-2023  润新知