该图再次显示每个对象都有一个原型.构造函数Foo也有自己
__proto__的Function.prototype,它又通过其__proto__属性再次引用到Object.prototype.因此,重复,Foo.prototype只是Foo的一个显式属性,它指的是b和c对象的原型.
var b = new Foo(20);
var c = new Foo(30);
Run Code Online (Sandbox Code Playgroud)
__proto__和prototype属性有什么区别?

这个数字来自这里.
javascript prototype prototypal-inheritance javascript-objects
在SO中多次询问这个问题.但我还是得不到东西.
我想从回调中获得一些价值.请查看下面的脚本以获得说明.
function foo(address){
// google map stuff
geocoder.geocode( { 'address': address}, function(results, status) {
results[0].geometry.location; // I want to return this value
})
}
foo(); //result should be results[0].geometry.location; value
Run Code Online (Sandbox Code Playgroud)
如果我试图返回该值只是"未定义".我从SO那里听了一些想法,但仍然失败了.
那些是:
function foo(address){
var returnvalue;
geocoder.geocode( { 'address': address}, function(results, status) {
returnvalue = results[0].geometry.location;
})
return returnvalue;
}
foo(); //still undefined
Run Code Online (Sandbox Code Playgroud) 如果有Javascript对象:
var objects={...};
Run Code Online (Sandbox Code Playgroud)
假设,它有超过50个属性,不知道属性名称(不知道'键')如何在循环中获取每个属性值?
我在JavaScript中有一个对象:
{
abc: '...',
bca: '...',
zzz: '...',
xxx: '...',
ccc: '...',
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想使用for循环来获取其属性.我想在部分中迭代它(不是一次所有的对象属性).
使用简单的数组我可以使用标准for循环:
for (i = 0; i < 100; i++) { ... } // first part
for (i = 100; i < 300; i++) { ... } // second
for (i = 300; i < arr.length; i++) { ... } // last
Run Code Online (Sandbox Code Playgroud)
但是如何用物体做呢?
在JavaScript中创建空对象有两种不同的方法:
var objectA = {}
var objectB = new Object()
Run Code Online (Sandbox Code Playgroud)
脚本引擎如何处理它们有什么不同吗?有没有理由使用一个而不是另一个?
类似地,也可以使用不同的语法创建一个空数组:
var arrayA = []
var arrayB = new Array()
Run Code Online (Sandbox Code Playgroud) 考虑:
var object = {
foo: {},
bar: {},
baz: {}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做:
var first = object[0];
console.log(first);
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用,因为第一个索引是命名的foo,而不是0.
console.log(object['foo']);
Run Code Online (Sandbox Code Playgroud)
有效,但我不知道它的名字是foo.它可以被命名为任何东西.我只想要第一个.
我有一个像这样的对象作为来自服务器的JSON响应返回:
{"0":"1","1":"2","2":"3","3":"4"}
Run Code Online (Sandbox Code Playgroud)
我想将它转换为像这样的JavaScript数组:
["1","2","3","4"]
Run Code Online (Sandbox Code Playgroud)
有没有最好的方法来做到这一点?无论我在哪里阅读,人们都在使用循环来使用复杂的逻辑.那么有没有其他方法来做到这一点?
我在这里编写了一个快速的jsfiddle ,我将一个小的json对象传递给一个新的变量并修改原始变量(而不是新变量)的数据,但新变量的数据也会更新.这必须意味着json对象是通过引用传递的,对吧?
这是我的快速代码:
var json_original = {one:'one', two:'two'}
var json_new = json_original;
console.log(json_original); //one, two
console.log(json_new); //one, two
json_original.one = 'two';
json_original.two = 'one';
console.log(json_original); //two, one
console.log(json_new); //two, one
Run Code Online (Sandbox Code Playgroud)
有没有办法制作json对象的深层副本,以便修改原始变量不会修改新变量?
当我回音时,我得到了这个,当我将它输入终端时运行
curl -i \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST --data '{"account":{"email":"akdgdtk@test.com","screenName":"akdgdtk","type":"NIKE","passwordSettings":{"password":"Starwars1","passwordConfirm":"Starwars1"}},"firstName":"Test","lastName":"User","middleName":"ObiWan","locale":"en_US","registrationSiteId":"520","receiveEmail":"false","dateOfBirth":"1984-12-25","mobileNumber":"9175555555","gender":"male","fuelActivationDate":"2010-10-22","postalCode":"10022","country":"US","city":"Beverton","state":"OR","bio":"This is a test user","jpFirstNameKana":"unsure","jpLastNameKana":"ofthis","height":"80","weight":"175","distanceUnit":"MILES","weightUnit":"POUNDS","heightUnit":"FT/INCHES"}' https://xxx:xxxxx@xxxx-www.xxxxx.com/xxxxx/xxxx/xxxx
Run Code Online (Sandbox Code Playgroud)
但是当在bash脚本文件中运行时,我收到此错误
curl: (6) Could not resolve host: application; nodename nor servname provided, or not known
curl: (6) Could not resolve host: is; nodename nor servname provided, or not known
curl: (6) Could not resolve host: a; nodename nor servname provided, or not known
curl: (6) Could not resolve host: test; nodename nor servname provided, or not known
curl: (3) [globbing] …Run Code Online (Sandbox Code Playgroud) 谷歌搜索"javascript克隆对象"带来一些非常奇怪的结果,其中一些是绝望的过时,有些只是太复杂,不是那么容易:
let clone = {...original};
Run Code Online (Sandbox Code Playgroud)
这有什么不对吗?
javascript ×9
object ×3
arrays ×2
json ×2
asynchronous ×1
bash ×1
callback ×1
curl ×1
ecmascript-6 ×1
iteration ×1
jquery ×1
loops ×1
new-operator ×1
prototype ×1