我不是那种动态编程语言,但是我写了很多JavaScript代码.我从来没有真正了解这个基于原型的编程,有没有人知道这是如何工作的?
var obj = new Object();
obj.prototype.test = function() { alert('Hello?'); };
var obj2 = new obj();
obj2.test();
Run Code Online (Sandbox Code Playgroud)
我记得很久以前我和人们进行了很多讨论(我不确定我在做什么)但是据我所知,没有一个类的概念.它只是一个对象,这些对象的实例是原始的克隆,对吧?
但是JavaScript中这个".prototype"属性的确切目的是什么?它与实例化对象有什么关系?
var obj = new Object(); // not a functional object
obj.prototype.test = function() { alert('Hello?'); }; // this is wrong!
function MyObject() {} // a first class functional object
MyObject.prototype.test = function() { alert('OK'); } // OK
Run Code Online (Sandbox Code Playgroud)
这些幻灯片也非常有帮助.
如果有Javascript对象:
var objects={...};
Run Code Online (Sandbox Code Playgroud)
假设,它有超过50个属性,不知道属性名称(不知道'键')如何在循环中获取每个属性值?
我想知道在JavaScript中是否有任何方法可以循环遍历这样的对象.
for(var i in myObject) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是得到这样的每个属性的名称.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法在谷歌上找到类似的东西.他们说要用它们传递变量的名称,但这不是我想要实现的选项.
谢谢你尽你所能的帮助.
使用Javascript,我想生成一个页面的链接.页面的参数位于我在JSON中序列化的Javascript数组中.
所以我想生成一个这样的URL:
http://example.com/?data="MY_JSON_ARRAY_HERE"
Run Code Online (Sandbox Code Playgroud)
如何转义我的JSON字符串(数组序列化)以将其作为URL中的参数包含?
如果有一个使用JQuery的解决方案,我会喜欢它.
注意:是的,页面的参数需要在一个数组中,因为它们有很多.我想我会用bit.ly来缩短之后的链接.
可能重复:
Javascript对象的长度(即关联数组)
我有一个类似于这个的对象:
var jsonArray = {
'-1': {
'-1': 'b',
'2': 'a',
'10': 'c'
},
'2': {
'-1': 'a',
'2': 'b',
'10': 'a'
},
'5': {
'-1': 'a',
'2': 'a',
'10': 'b'
}
};
Run Code Online (Sandbox Code Playgroud)
我试图得到它的长度,问题是jsonArray.length返回5而不是3(这是它拥有的总项目).该阵列相对较长(有1000x2000项),这必须每秒进行很多次.如何更有效地获得物品数量?
在JavaScript/jQuery中,如果我alert有一些对象,我会得到[object]或者 [object Object]
有什么办法可以知道:
这两个对象有什么区别
这是什么类型的对象
此对象包含的所有属性以及每个属性的值
?
在JavaScript中,我们有几种获取对象属性的方法,具体取决于我们想要获得的内容.
1)Object.keys(),它返回一个对象的所有自己的可枚举属性,一个ECMA5方法.
2)一个for...in循环,它返回一个对象的所有可枚举属性,无论它们是自己的属性,还是从原型链继承.
3)Object.getOwnPropertyNames(obj)返回对象的所有属性,可枚举与否.
我们也有这样的方法hasOwnProperty(prop)让我们检查属性是继承还是实际属于该对象,propertyIsEnumerable(prop)顾名思义,它让我们检查属性是否可枚举.
有了所有这些选项,就无法获得对象的不可枚举的非自有属性,这就是我想要做的.有没有办法做到这一点?换句话说,我可以以某种方式获取继承的非可枚举属性的列表吗?
谢谢.
我有一个具有各种属性的对象.对象的名称是全局变量,但属性在运行时通过方法更改.某些方法会向对象添加属性.我想添加一个循环遍历此对象的方法,并删除所有null或空属性.我可以通过指定其名称并检查其状态来检查每个属性,但如果我稍后添加属性,我也必须更新此清理方法.如何在不知道属性名称的情况下遍历对象的属性.
谢谢你的建议.
我想知道是否有一种快速方法可以将关联数组的键提取到数组中,或者使用JavaScript提取逗号分隔列表(jQuery没问题).
options = {key1: "value1", key2: "value2"};
Run Code Online (Sandbox Code Playgroud)
结果应该是数组:
["key1", "key2"]
Run Code Online (Sandbox Code Playgroud)
或只是一个字符串:
"key1, key2"
Run Code Online (Sandbox Code Playgroud) 我试图获取以对象开头的所有键和值imageIds.
我的对象如下所示:
{
title: 'fsdfsd',
titleZh: 'fsdfsd',
body: 'fsdf',
bodyZh: 'sdfsdf',
imageIds: '/uploads/tmp/image-3.png',
imageIdsZh: ''
}
Run Code Online (Sandbox Code Playgroud)
但我只需要属性imageIds,和imageIdsZh.但是明天,一个对象可能包含imageIdsBlah,我也需要把它拿起来.我可以从对象中删除前几个属性,但是下一个对象可能包含其他属性,例如foo: 'bar'