JavaScript-object“;这";

JavaScript-object“;这";,javascript,object,Javascript,Object,我有两个JavaScript对象 Obj1-静态类 Obj2-实例 在Obj1中添加项并从Obj2运行方法isAdded()后,出现问题 obj1.func存储一个函数,该函数包含Obj2的关键字this。如果我调用Obj1.func([args])这个现在用于Obj1而不是Obj2 有什么回答吗 var Obj1=function(){}; Obj1.func=null; Obj1.addItem=函数(vstup){ //add-AJAX异步的代码。。。。 //添加后 Obj1.func

我有两个JavaScript对象

  • Obj1-静态类
  • Obj2-实例
在Obj1中添加项并从Obj2运行方法
isAdded()
后,出现问题

obj1.func
存储一个函数,该函数包含Obj2的关键字
this
。如果我调用
Obj1.func([args])
这个
现在用于Obj1而不是Obj2

有什么回答吗

var Obj1=function(){};
Obj1.func=null;
Obj1.addItem=函数(vstup){
//add-AJAX异步的代码。。。。
//添加后
Obj1.func(id,nazev);
};
//    ----------------------------
var Obj2=函数(){
this.variable=null;
this.promenna2=null;
this.isAdded=函数(){
this.variable=“added”;
警报(“正常”);
};
};
//    ---------------------
//体内
window.onload=function(){
var instanceObj2=新的Obj2();
obj1.func=instanceObj2.isAdded();
obj1.附加项目(“测试”);
}

您正在执行的是
obj1.func=instanceObj2.isAdded()
,这意味着:
设置
obj1.func
的结果,即:
obj1.func=undefined
,因为
obj2.isAdded()
不返回任何内容

如果然后执行运行
obj1.func
obj1.isAdded()
,则实际上是作为函数执行
undefined

要解决此问题,请执行以下操作:

obj1.func = function() { instanceObj2.isAdded(); };
在另一个上下文中调用某个内容(又称:运行某个内容并设置“this”)

要使用不同的值运行某些内容,请执行以下操作:

要设置函数的上下文,可以使用

function add()
{
    var result = this;
    for(var i = 0, l = arguments.length; i < l; i++)
        result += arguments[i];
    return result;
}
var value = 2;
newValue = add.apply(value, [3,4,5]); // = 2 + 3 + 4 + 5;
// newValue = 5
newValue = add.call(value, 3, 4, 5) // same as add.apply, except apply takes an array.

您正在执行
obj1.func=instanceObj2.isAdded()
,这意味着:
set
obj1.func
的结果,即:
obj1.func=undefined
,因为
obj2.isAdded()
不返回任何内容

如果然后执行运行
obj1.func
obj1.isAdded()
,则实际上是作为函数执行
undefined

要解决此问题,请执行以下操作:

obj1.func = function() { instanceObj2.isAdded(); };
在另一个上下文中调用某个内容(又称:运行某个内容并设置“this”)

要使用不同的值运行某些内容,请执行以下操作:

要设置函数的上下文,可以使用

function add()
{
    var result = this;
    for(var i = 0, l = arguments.length; i < l; i++)
        result += arguments[i];
    return result;
}
var value = 2;
newValue = add.apply(value, [3,4,5]); // = 2 + 3 + 4 + 5;
// newValue = 5
newValue = add.call(value, 3, 4, 5) // same as add.apply, except apply takes an array.

您正在执行
obj1.func=instanceObj2.isAdded()
,这意味着:
set
obj1.func
的结果,即:
obj1.func=undefined
,因为
obj2.isAdded()
不返回任何内容

如果然后执行运行
obj1.func
obj1.isAdded()
,则实际上是作为函数执行
undefined

要解决此问题,请执行以下操作:

obj1.func = function() { instanceObj2.isAdded(); };
在另一个上下文中调用某个内容(又称:运行某个内容并设置“this”)

要使用不同的值运行某些内容,请执行以下操作:

要设置函数的上下文,可以使用

function add()
{
    var result = this;
    for(var i = 0, l = arguments.length; i < l; i++)
        result += arguments[i];
    return result;
}
var value = 2;
newValue = add.apply(value, [3,4,5]); // = 2 + 3 + 4 + 5;
// newValue = 5
newValue = add.call(value, 3, 4, 5) // same as add.apply, except apply takes an array.

您正在执行
obj1.func=instanceObj2.isAdded()
,这意味着:
set
obj1.func
的结果,即:
obj1.func=undefined
,因为
obj2.isAdded()
不返回任何内容

如果然后执行运行
obj1.func
obj1.isAdded()
,则实际上是作为函数执行
undefined

要解决此问题,请执行以下操作:

obj1.func = function() { instanceObj2.isAdded(); };
在另一个上下文中调用某个内容(又称:运行某个内容并设置“this”)

要使用不同的值运行某些内容,请执行以下操作:

要设置函数的上下文,可以使用

function add()
{
    var result = this;
    for(var i = 0, l = arguments.length; i < l; i++)
        result += arguments[i];
    return result;
}
var value = 2;
newValue = add.apply(value, [3,4,5]); // = 2 + 3 + 4 + 5;
// newValue = 5
newValue = add.call(value, 3, 4, 5) // same as add.apply, except apply takes an array.

在javascript中,这指的是当前正在使用的元素,所以它的引用不断变化 最好的方法是将其存储在变量中。在你想要的地方使用它

然后使用它们

obj2This.isAdded();

在javascript中,这指的是当前正在使用的元素,所以它的引用不断变化 最好的方法是将其存储在变量中。在你想要的地方使用它

然后使用它们

obj2This.isAdded();

在javascript中,这指的是当前正在使用的元素,所以它的引用不断变化 最好的方法是将其存储在变量中。在你想要的地方使用它

然后使用它们

obj2This.isAdded();

在javascript中,这指的是当前正在使用的元素,所以它的引用不断变化 最好的方法是将其存储在变量中。在你想要的地方使用它

然后使用它们

obj2This.isAdded();

Obj1-静态类Obj2-实例。。。用英语说,我在这里完全迷路了。哪一行给了您这个问题?我看到的唯一的
这个
是针对OBJ2.Obj1-静态类OBJ2-实例。。。用英语说,我在这里完全迷路了。哪一行给了您这个问题?我看到的唯一的
这个
是针对OBJ2.Obj1-静态类OBJ2-实例。。。用英语说,我在这里完全迷路了。哪一行给了您这个问题?我看到的唯一的
这个
是针对OBJ2.Obj1-静态类OBJ2-实例。。。用英语说,我在这里完全迷路了。哪一行给你出了问题?我看到的唯一
this
是针对OBJ2的。为什么在不合适的变量中保留“this”术语?为什么在不合适的变量中保留“this”术语?为什么保留“this”变量中不合适的术语?为什么在不合适的变量中保留“this”术语?+1,或在现代浏览器上(或使用polyfill):
obj1.func=instanceObj2。