Передайте имя переменной в качестве параметра при построить его
var myClass = function(assigned_name,filePath){
this.variableName = assigned_name
this.run = function(){
console.log(this.variableName);
}
}
var x = new myClass('x','./sayHi.js');
x.run()
Выход:
'x'
Полезно для:
Хотя многие люди говорят, что это бессмысленно, я столкнулся с ситуацией, когда мне это нужно. И побочная заметка, многие операции jQuery полагаются на принцип знания того, что такое его собственное имя переменной. Это всегда «$
». И люди ссылаются на «$
» изнутри метода jQuery при назначении анонимных функций событиям onclick, не понимая, что именно это задает ваш вопрос.
Вам понадобится это, если ваш объект myClass()
динамически назначает обработчики событий, которые обращаются к вашему конкретному экземпляру класса, поскольку эти вызовы часто зависят от информации, сохраненной в вашей конкретной переменной класса. Поскольку ваша функция myClass()
не так широко распространена как jQuery, вы не можете рассчитывать на то, что она всегда назначается одной и той же переменной, например «$
».
Передача собственного назначенного имени переменной самому себе, когда она построена, является лучшим способом, который я нашел, чтобы мой экземпляр класса знал, что такое его глобальная ссылка.
Невозможно, зачем вы этого хотите? Вы можете получить доступ к своему экземпляру, используя ключевое слово 'this'. И вы должны определить свои методы на прототипе конструктора, а не внутри него. –
Я не совсем понимаю, что вы хотите сделать. –
Возможный дубликат [узнать имя переменной экземпляра из себя] (http://stackoverflow.com/questions/10911519/find-out-instance-variable-name-out-of-itself) –