zoukankan      html  css  js  c++  java
  • 函数的调用

    1、通过this调用

    1 var obj = {
    2     hello : function(){
    3         return "hello," + this.username;
    4     },
    5     username : "Hans Gruber"
    6 }
    7 obj.hello(); //Hans Hans Gruber

    2、在另一个函数中复制一份相同函数的引用

    1 var obj2 = {
    2     hello : obj.hello,
    3     username : "Boo Radley"
    4 };
    5 obj2.hello();  //"hello,Boo Radley"

    解释:上述方法中,方法调用是由调用表达式自身来确定this变量的绑定,绑定到this变量的对象被称为调用接收者,表达式obj.hello()在obj对象中查找名为hello的属性,并将obj对象作为接收者,然后调用该属性。表达式obj2.hello()在obj2中查找名为hello的属性,恰巧正是obj.hello函数,但是接收者是obj2对象

    3、一个普通的函数不能引用this变量

     1 function hello(){
     2     return "hello," + this.username;
     3 }
     4 
     5 var obj1 = {
     6     hello : hello,
     7     username : "Gordon Gekko"
     8 };
     9 obj1.hello();  //"hello ,Gordon Gekko"
    10 
    11 var obj2 = {
    12     hello : hello,
    13     username : "Biff Tannen"
    14 };
    15 obj1.hello();  //"hello ,Biff Tannen"
    16 hello(); //"hello,undefined"

    一个非方法的函数会将全局对象作为接收者,在这种情况下没有名为name的属性所以产生了undefined

    4、通过构造函数

    1 function User(name,passWordHash){
    2     this.name = name;
    3     this.passWordHash = passWordHash;
    4 }
    5 var u = new User("sFalken","oooooooooo");
    6 u.name; //'sFalken'
  • 相关阅读:
    linux命令行 238
    C语言语法分析器 238
    有穷自动机的构造与识别 238
    简单词法分析实验报告238许锦沛 238
    javascript获得鼠标的坐标值
    滚动条颜色设置(IE、chrome浏览器)
    获取元素的页面位置,兼容各浏览器
    js闭包的作用
    javascrpt绑定事件之匿名函数
    javascript 函数及作用域
  • 原文地址:https://www.cnblogs.com/zhanghuiyun/p/5880657.html
Copyright © 2011-2022 走看看