小编Abd*_*ziq的帖子

我对JavaScript中的关键字'this'感到困惑

这是一个例子:

function one() {

    var a = 1;
    two();

    function two() {

        var b = 2;
        three();

        function three() {

            var c = 3;
            alert(a + b + c); // 6

        }
    }   
}

one()?; //calling the function
Run Code Online (Sandbox Code Playgroud)

现在当我们调用函数one()时,结果是6.

所以关于范围链,所有变量都已解决,现在我有一个问题.

当所有变量通过范围链解析时,为什么我们需要这个" this "关键字?

所以如果我们有以下功能:

function a() {
    var a = 'function a';

    function b() {
        var b = 'function b';
        alert (a); //will be function a, without keyword this 
        alert (this.a); // what will be the effect of …
Run Code Online (Sandbox Code Playgroud)

javascript scope this

5
推荐指数
1
解决办法
157
查看次数

javascript函数和这个关键字,上下文

这是代码

obj = {
    a: 'some value';
    m: function(){
        alert(this.a);
    }
}

obj.m();
Run Code Online (Sandbox Code Playgroud)

结果是'some value'.

我听说这个关键字引用了函数的所有者是obj.现在的问题是上面代码中函数的所有者是obj这样的,为什么在函数拥有所有者时使用此关键字很重要,上面的代码应该按照以下方式工作

obj = {
    a: 'some value';
    m: function(){
        alert(a);
    }
}

obj.m();
Run Code Online (Sandbox Code Playgroud)

哪个不起作用我知道但为什么?

javascript keyword

2
推荐指数
1
解决办法
146
查看次数

一个函数在内存中只存储一次吗?

当我们在对象或全局中的任何地方定义函数时,javascript函数是否会存储在内存中一次。

function (){
alert("some value");
}

obj = {
 m: function(){
   alert('some value');
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript function

2
推荐指数
1
解决办法
2057
查看次数

我对java Script函数感到困惑

所以这是一些代码

var name = 'ali';

function say() {
  alert(name);
}
Run Code Online (Sandbox Code Playgroud)

因此,这将警告'ali',因为名称函数现在由全局对象拥有以下代码

var oobj  { 
  var name: 'raziq',
  say:function () {
    alert (name);
  }
}

oobj.say();
Run Code Online (Sandbox Code Playgroud)

所以现在say函数由oobj对象拥有,因此name属性应该警告'raziq'而不是'ali'.顺便说一句,我知道使用这个关键字

我的问题是什么会被提醒和你?

javascript function

-1
推荐指数
1
解决办法
117
查看次数

标签 统计

javascript ×4

function ×2

keyword ×1

scope ×1

this ×1