在处理Javascript中的方法时,为什么不设置全局变量?

在处理Javascript中的方法时,为什么不设置全局变量?,javascript,global-variables,Javascript,Global Variables,基本上,代码从一个更改age属性的方法开始,然后该方法后面是一个“bob”对象,最后是一个使用该方法更改bob属性(age)的代码 我有两个问题:bob.setAge=setAge;(代码中倒数第二行) 通过将setAge设置为等于bob.setAge,该设置是否会将setAge设置为一个全局变量,等于bob.setAge 在bob.setAge中,bob是变量,setAge是方法。我认为当写出类似bob.setAge的内容时,句点之前的单词引用对象(susan.age),句点之后的单词引用属性

基本上,代码从一个更改age属性的方法开始,然后该方法后面是一个“bob”对象,最后是一个使用该方法更改bob属性(age)的代码

我有两个问题:bob.setAge=setAge;(代码中倒数第二行)

  • 通过将setAge设置为等于bob.setAge,该设置是否会将setAge设置为一个全局变量,等于bob.setAge

  • 在bob.setAge中,bob是变量,setAge是方法。我认为当写出类似bob.setAge的内容时,句点之前的单词引用对象(susan.age),句点之后的单词引用属性(susan.age)。javascript如何识别bob.setAge中的setAge引用的是方法而不是属性

  • 通过将setAge设置为等于bob.setAge,该设置是否会将setAge设置为一个全局变量,等于bob.setAge

    不,你在做相反的事

    在bob.setAge中,bob是变量,setAge是方法。我认为当写出类似bob.setAge的内容时,句点之前的单词引用对象(susan.age),句点之后的单词引用属性(susan.age)。javascript如何识别bob.setAge中的setAge引用的是方法而不是属性

    JS不“识别它”(它不区分“它们”,因为“它们”是相同的东西):
    bob.setAge
    包含对您可以(并且确实)调用的函数的引用

    通过将setAge设置为等于bob.setAge,该设置是否会将setAge设置为一个全局变量,等于bob.setAge

    不,你在做相反的事

    在bob.setAge中,bob是变量,setAge是方法。我认为当写出类似bob.setAge的内容时,句点之前的单词引用对象(susan.age),句点之后的单词引用属性(susan.age)。javascript如何识别bob.setAge中的setAge引用的是方法而不是属性

    JS不“识别它”(它不区分“它们”,因为“它们”是相同的东西):
    bob.setAge
    包含对您可以(并且确实)调用的函数的引用

    通过将setAge设置为等于bob.setAge,该设置是否会将setAge设置为一个全局变量,等于bob.setAge

    不,你在做相反的事

    在bob.setAge中,bob是变量,setAge是方法。我认为当写出类似bob.setAge的内容时,句点之前的单词引用对象(susan.age),句点之后的单词引用属性(susan.age)。javascript如何识别bob.setAge中的setAge引用的是方法而不是属性

    JS不“识别它”(它不区分“它们”,因为“它们”是相同的东西):
    bob.setAge
    包含对您可以(并且确实)调用的函数的引用

    通过将setAge设置为等于bob.setAge,该设置是否会将setAge设置为一个全局变量,等于bob.setAge

    不,你在做相反的事

    在bob.setAge中,bob是变量,setAge是方法。我认为当写出类似bob.setAge的内容时,句点之前的单词引用对象(susan.age),句点之后的单词引用属性(susan.age)。javascript如何识别bob.setAge中的setAge引用的是方法而不是属性

    JS不“识别它”(它不区分“它们”,因为“它们”是相同的东西):
    bob.setAge
    包含对一个函数的引用,您可以(并且确实)调用该函数
    var setAge=函数(newAge){
    console.log(this);
    这个年龄=新年龄;
    };
    var bob=新对象();
    年龄=30岁;
    bob.setAge=设置;
    log('Calling set age as bob's method');
    设定值(50)//这应该是鲍勃。。。
    //以上内容与以下内容类似
    log('Calling set age with bob as scope');
    setAge.call(鲍勃[50]);
    log('Calling set age as a function with no context');
    设置(100)//这应该是全局对象,因为调用函数时没有任何上下文/范围。在本例中,它是窗口对象,因为我们在浏览器中运行。在节点中,它将是节点本身,等等。
    var setAge=函数(newAge){
    console.log(this);
    这个年龄=新年龄;
    };
    var bob=新对象();
    年龄=30岁;
    bob.setAge=设置;
    log('Calling set age as bob's method');
    设定值(50)//这应该是鲍勃。。。
    //以上内容与以下内容类似
    log('Calling set age with bob as scope');
    setAge.call(鲍勃[50]);
    log('Calling set age as a function with no context');
    设置(100)//这应该是全局对象,因为调用函数时没有任何上下文/范围。在本例中,它是窗口对象,因为我们在浏览器中运行。在节点中,它将是节点本身,等等。
    var setAge=函数(newAge){
    console.log(this);
    这个年龄=新年龄;
    };
    var bob=新对象();
    年龄=30岁;
    bob.setAge=设置;
    log('Calling set age as bob's method');
    设定值(50)//这应该是鲍勃。。。
    //以上内容与以下内容类似
    log('Calling set age with bob as scope');
    setAge.call(鲍勃[50]);
    log('Calling set age as a function with no context');
    设置(100)//这应该是全局对象,因为调用函数时没有任何上下文/范围。在本例中,它是窗口对象,因为我们在浏览器中运行。在节点中,它将是节点本身,等等。
    var setAge=函数(newAge){
    console.log(this);
    这个年龄=新年龄;
    };
    var bob=新对象();
    年龄=30岁;
    bob.setAge=设置;
    log('Calling set age as bob's method');
    设定值(50)//这应该是鲍勃。。。
    //上面是sim卡
    
    var setAge = function (newAge) {
      this.age = newAge;
    };
    
    var bob = new Object();
    bob.age = 30;
    
    bob.setAge = setAge; 
    
    bob.setAge(50);