相关疑难解决方法(0)

获取对象或类的名称

有没有解决方案来获取对象的函数名称?

function alertClassOrObject (o) {
   window.alert(o.objectName); //"myObj" OR "myClass" as a String
}

function myClass () {
   this.foo = function () {
       alertClassOrObject(this);
   }
}

var myObj = new myClass();
myObj.foo();
Run Code Online (Sandbox Code Playgroud)

for (var k in this) {...}- 没有关于className或的信息ObjectName.有可能得到其中一个吗?

javascript

181
推荐指数
4
解决办法
26万
查看次数

JavaScript回调范围

我在回调函数中引用我的对象时遇到了一些普通的旧JavaScript(没有框架)的问题.

function foo(id) {
    this.dom = document.getElementById(id);
    this.bar = 5;
    var self = this;
    this.dom.addEventListener("click", self.onclick, false);
}

foo.prototype = {
    onclick : function() {
        this.bar = 7;
    }
};
Run Code Online (Sandbox Code Playgroud)

现在当我创建一个新对象时(在DOM加载后,使用span #test)

var x = new foo('test');
Run Code Online (Sandbox Code Playgroud)

onclick函数中的'this'指向span#test而不是foo对象.

如何在onclick函数中获取对foo对象的引用?

javascript events binding scope callback

58
推荐指数
3
解决办法
5万
查看次数

获取对象属性名称作为字符串

是否可以将对象属性名称作为字符串

person = {};
person.first_name = 'Jack';
person.last_name = 'Trades';
person.address = {};
person.address.street = 'Factory 1';
person.address.country = 'USA';
Run Code Online (Sandbox Code Playgroud)

我想像这样使用它:

var pn = propName( person.address.country ); // should return 'country' or 'person.address.country'
var pn = propName( person.first_name );      // should return 'first_name' or 'person.first_name'
Run Code Online (Sandbox Code Playgroud)

先谢谢你

注意:此代码正是我正在寻找的.我明白这听起来很愚蠢,但事实并非如此.

这就是我想用它做的事情.

HTML

person = {};
person.id_first_name = 'Jack';
person.id_last_name = 'Trades';
person.address = {};
person.address.id_address = 'Factory 1';
person.address.id_country = 'USA';


extPort.postMessage
(
  {
    message : MSG_ACTION,
    propName( person.first_name ): person.first_name
  } …
Run Code Online (Sandbox Code Playgroud)

javascript string properties object

47
推荐指数
8
解决办法
6万
查看次数

javascript获取父对象/变量的名称

可以说我有

var myObject = {

  'myFunction' : function () {
    // something here that lets me get 'myObject'
  }

}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了在这里找到的各种函数和类似this.constructor.name但我总是得到'对象'作为返回的值.有没有办法在这种情况下获得变量的实际名称?

编辑解释为什么这样也许人们会更好地理解...我希望能够创建一个用setInterval连续调用的函数.像这样的东西:

var myObject = {
  'intval' : '',
  'timeout' : 500,

  'start' : function () {
    this.objectName = 'myObject'; // <--I want this to be dynamically popped
    this.intval=window.setInterval("window['"+this.objectName+"'].myFunction()",this.timeout);
  },

  'stop' : function () {
    window.clearInterval(this.intval);
    this.intval='';
  },

  'myFunction' : function () {
    // do something
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我将'myObject'硬编码到this.objectName但是我不希望它被硬编码,这可以正常工作.问题是我不想setInterval("window[this.objectName]",100) because这样is not in the …

javascript object

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

如何使用JS将对象的名称转换为字符串形式?

例如,我在这里有一个对象

var obj = {a:1,b:2,c:3}
Run Code Online (Sandbox Code Playgroud)

我怎么能得到一个字符串"obj"的obj'name?

javascript object

3
推荐指数
2
解决办法
2万
查看次数

在JavaScript中获取CSS类名

我在使用JavaScript中的字符串中获取类名时遇到问题.

例如:

var ddd="<p class='Box_title'>Heading text here...</p>";
Run Code Online (Sandbox Code Playgroud)

从那以后我想得到p标签的类名.

javascript css

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

使用变量的名称JavaScript(字面意思)

如何引用变量的名称(字面意思是变量的名称)?

我有以下代码:

var thisVariableName = 'path/filename.js';

var script = document.createElement('script');
script.id = **I WANT THE TEXT "thisVariableName" to be added HERE**
script.type = 'text/javascript';
script.src = thisVariableName;
Run Code Online (Sandbox Code Playgroud)

因此,如果输出script.id,我会得到thisVariableName,而不是变量的值

在一些反应之后:

我想系统化添加许多脚本文件.在下面的示例中,我添加了四个文件,但想象一下我必须添加30多个文件(请保留自己,不要问为什么我需要添加30多个文件;毕竟这是计算的承诺)

截至目前,我知道如何完成这一任务的唯一方法是创建两个单独的数组; 数组1表示文件的名称字符串,数组2表示文件的路径,或者ALTERNATIVELLY,因为Felix Kling SUGGESTS为每个变量创建一个对象:

var jQueryPath = 'js/jquery-1.5.1.js';
var jQueryUICore = 'js/jquery.ui.core.js';
var jQueryUIWidget = 'js/jquery.ui.widget.js';
var jQueryUITabs = 'js/jquery.ui.tabs.js';

var fileNames = new Array ('jQueryPath','jQueryUICore','jQueryUIWidget','jQueryUITabs');

var filePaths = new Array (jQueryPath,jQueryUICore,jQueryUIWidget,jQueryUITabs);

var head = document.getElementsByTagName("head")[0]; 

for (var i=0;i<4;i++){

    var script = document.createElement('script');
    script.setAttribute('id',fileNames[i]);
    script.setAttribute('type','text/javascript');
    script.setAttribute('src', filePaths[i]);
    head.appendChild(script);

    }
Run Code Online (Sandbox Code Playgroud)

因此,无论是创建数组来保存变量的名称和值,还是创建对象,都需要为每个文件单独创建两个属性. …

javascript variables

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

标签 统计

javascript ×7

object ×3

binding ×1

callback ×1

css ×1

events ×1

properties ×1

scope ×1

string ×1

variables ×1