Мой JS-скрипт имеет что-то вроде этого:
window.object_name = {
//defined function
testFunction: function(arg1,arg2){
}
testFunction_2 : function(){
//calling testFunction in anotherfunction using 'this' keyword
this.testFunction();
}
}
Вызов testFunction
в anotherfunction
с использованием ключевого слова this
, но при выполнении тестовых примеров this
не имеет ссылки на testFunction
.
Пытался высмеять ключевое слово this
или переопределение не работает.
Получение ошибки ● тестовые примеры для пакета модулей › тестирование TypeError: невозможно прочитать свойства неопределенного значения (чтение «testFunction»)
Как ты это назвал? Должно быть window.object_name.testFunction_2()
Но есть ли способ, которым я могу высмеять или передать ссылку на ключевое слово «this»?
@Кирти testFunction_2.call(testThisObject)
@DustInComp не работает, не могли бы вы сказать мне, нужно ли мне использовать testFunction_2.call(window.Object_name) между тестовыми примерами
Если вы хотите, чтобы this
в testFunction_2
ссылался на object_name
, вам следует вызвать его любым из следующих способов:
// direct property access assigns the object left of the . to `this`
object_name.testFunction_2()
const { testFunction_2 } = object_name
// without property access, `this` defaults to globalThis (the window object)
testFunction_2() // fails with 'this.testFunction is not a function'
// call or apply
testFunction_2.call(object_name)
testFunction_2.apply(object_name)
// bind `this`
const testFnBound = testFunction_2.bind(object_name)
testFnBound()
Вы пытались вместо этого сослаться на
window
?