zoukankan      html  css  js  c++  java
  • javascript学习笔记-3

    1.对于javascript中的this关键字,表示的是当前代码所处的对象

    var a={
    	get:function(){
    	this.val=12
    	}
    
    }
    
    console.log(a.val);
    a.get();
    console.log(a.val);
    

     a是一个对象,注意一点,get并不是一个对象(其实也不对,javascript中万物皆为对象,但这样比较容易理解和记忆),而是a的一个属性,根据对this的定义,this所处的代码的对象正是a,所以this代表a对象。

    function my(){
        this.name='迪迦'
    }
    
    console.log(new my().name);
    

     再比如这个例子,my是一个函数,但也是一个对象,this所处的代码的对象就是new my()之后的对象。

    再举一个更明显的例子:

    var obj={};
    obj.click=function(){
       this.name='xx';
    }
    obj.click()
    console.log(obj.name)
    

     obj是一个对象,而click是obj的一个属性,this所处的代码的对象指向的是obj,所以this代表obj;

     2.如果需要向一个setInterval或者settimeout的执行函数传值,一般有如下做法:

    setInterval("myFun("+arg+")",1000)
    

     这样会显得很乱,比较合适的方式是利用闭包:

    function myFun(age){
    	setInterval(function(){
    		console.log(age);
    	},1000)
    };
    
    myFun(15);
    

     之所以能够这么做就是利用了闭包的特性:内层函数可以访问外部函数的变量,即使外层函数已经终止

    3.尝试使用所有对象的constructor属性,可以发现,javascript中所有的对象(包括函数)的构造器都是Function函数,也就是说不管是预定义的Object、Array对象,还是你自

    定义的function也好,他们都是由Function函数构造的,有一点除外,那就是如果一个对象是你自定义的对象,比如:

    var obj=function (){
    	this.name='xx';
    }
    console.log(new obj().constructor==obj)
    

     那么这个构造函数就是自定义的obj,而不是Function函数。

  • 相关阅读:
    Surface Mount Package Details
    Boost Converter
    IPC low/medium/high density 什么意思?
    SMT Surface Mount Technology footprint references
    Time Step Too Small in Multisim
    mOByDiC E90C2600 EOBD/OBDII to RS232 gateway
    STN1110 Multiprotocol OBD to UART Interpreter
    STN1170 Multiprotocol OBD to UART Interpreter
    BR16F84 OBD II Interface Chip For PWM, VPW, and ISO 9141-2 Vehicles
    ELM327 OBD to RS232 Interpreters
  • 原文地址:https://www.cnblogs.com/liaochong/p/javascript3.html
Copyright © 2011-2022 走看看