标签: object-literal

JavaScript中的这个东西是什么?

var something = {

wtf: null,
omg: null
};
Run Code Online (Sandbox Code Playgroud)

自从我上次编程以来,我的JavaScript知识仍然非常不完整,但我想我现在已经重新学习了大部分知识.除此之外.我记不起以前见过这个.它是什么?我在哪里可以了解更多相关信息?

javascript object-literal

9
推荐指数
4
解决办法
1048
查看次数

无法在JavaScript对象文字中定义变量

为什么这段代码有效......

var message = {
    texts: {
        text1: 'Hello',
        text2: 'World'
    },
    greet: function() {
        console.log(this.texts.text1 + ' ' + this.texts.text2 + '!');
    }
}
message.greet();
Run Code Online (Sandbox Code Playgroud)

......但这不是吗?

var message = {
    texts: {
        text1: 'Hello',
        text2: 'World'
    },
    both: this.texts.text1 + ' ' + this.texts.text2 + '!',
    greet: function() {
        console.log(this.both);
    }
}
message.greet();
Run Code Online (Sandbox Code Playgroud)

它给了我"两个都没有定义"的错误.我在这里错过了什么?出了点问题this.both?对于对象文字,我总是新手

javascript object-literal

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

Javascript对象文字:值初始化?

我正在使用object literal来创建一个带有方法的对象.
这是一个简单的例子.

var SizeManager = {
    width : 800,
    height : 600,
    ratio : this.width / this.height,
    resize : function (newWidth) {
        width = newWidth;
        height = newWidth / ratio;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是SizeManager.ratio返回" NaN ".我很确定这是一个初始化问题.
有没有办法获得正确的比率值?
有没有办法为对象文字分配一个costructor或初始化器?
是定义构造函数objcet的唯一方法吗?

编辑:当然,SizeManager理想情况下是一个单例(只有一个对象),这就是我使用对象文字的方式.

javascript constructor object-literal

8
推荐指数
2
解决办法
8398
查看次数

JavaScript Object literal方法:递归调用

是否可以从对象文字中递归调用一个方法?

例如:

(function () {
    'use strict';
    var abc = ['A', 'B', 'C'],
        obj = {
            f: function () {
                if (abc.length) {
                    abc.shift();
                    f(); // Recursive call
                }
            }
        };

    obj.f();
}());
Run Code Online (Sandbox Code Playgroud)

错误:在定义之前使用'f'.

谢谢.

javascript recursion function-literal object-literal

8
推荐指数
3
解决办法
5244
查看次数

"SyntaxError:意外的令牌:"在控制台中输入{"a":"","b":""} json时

在尝试评估以下内容时,我在chrome和firefox开发人员工具中遇到错误:

{
    "a": "",
    "b": ""
}
Run Code Online (Sandbox Code Playgroud)

jsonlint.com告诉我这是有效的.将此代码放在实际的javascript文件中并运行它可以正常工作.只有当我在Chrome开发人员工具或firebug中在控制台中运行时,才会出现这种奇怪现象.这里发生了什么?

javascript json syntax-error object-literal

8
推荐指数
2
解决办法
4564
查看次数

TypeScript,什么是对象文字的调用签名?它们如何与泛型类型一起使用?

我正在阅读TypeScript文档的这一部分,在“通用类型”部分下,以下两个声明是等效的:

代码样本1

function identity<T>(arg: T): T {
    return arg;
}

let myIdentity: <T>(arg: T) => T = identity;
Run Code Online (Sandbox Code Playgroud)

代码样本2

function identity<T>(arg: T): T {
    return arg;
}

let myIdentity: {<T>(arg: T): T} = identity;
Run Code Online (Sandbox Code Playgroud)

文档指出,由于以下原因,这是可能的。

我们还可以将泛型写为对象文字类型的调用签名

尽管有这句话,我仍在努力理解两者的等效性,是否有进一步的文档或说明“对象文字类型的调用签名”的含义。

对不起,我无法给出进一步的解释,但是我对两者的等效性完全是空白,对我来说第二种类型定义指出myIdentity应该是一个对象?

谢谢。

javascript generics object object-literal typescript

8
推荐指数
5
解决办法
1905
查看次数

如何从嵌套对象文字访问外部成员?

在以下代码中,是否可以从嵌套对象文字中访问x成员?

var outer = {
    x : 0,
    inner: {
        a : x + 1,       // 'x' is undefined.
        b : outer.x + 1, // 'outer' is undefined.
        c : this.x + 1   // This doesn't produce an error, 
    }                    // but outer.inner.c is NaN.
}
Run Code Online (Sandbox Code Playgroud)

javascript scope nested object-literal

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

使用Jquery计算对象文字中的对象数

码:

var animals = {
                    "elephant": {
                                    "name" : "Bingo",
                                    "age" : "4"
                                },
                    "Lion":     {
                                    "name" : "Tango",
                                    "age" : "8"
                                },
                    "Tiger":    {
                                    "name" : "Zango",
                                    "age" : "7"
                                }
                }
Run Code Online (Sandbox Code Playgroud)

我想在此对象文字中使用Jquery计算对象的数量.

javascript jquery jquery-ui object object-literal

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

为什么箭头函数的'this'不会在嵌套对象文字内部发生变化?

我发现'this'关键字似乎始终指向global在嵌套对象文字中使用箭头函数.

根据其他问题,下面的代码片段可以解释为箭头函数的'this'在词汇上下文中定义.

var c = 100;
var a = {c:5 , fn: () => {return this.c;} };
console.log(a.c); //100
Run Code Online (Sandbox Code Playgroud)

但是,我无法理解以下代码(嵌套对象文字):

var c = 100;

var a = {
    c: 5,
    b: {
        c: 10,
        fn: ()=> {return this.c;}
    }
}

console.log(a.b.fn());// still 100, why not 5?
Run Code Online (Sandbox Code Playgroud)

我的意思是,如果从词汇语境方面考虑,不应该在abfn中的'this'指向一个?

为什么,无论对象嵌套多少级别,所有'this'实例都指向窗口还是全局?

javascript this object-literal ecmascript-6 arrow-functions

7
推荐指数
2
解决办法
2378
查看次数

打字稿对象文字“this”关键字

this在对象文字中的函数内部使用时的预期行为是什么?

例如,假设我有一个类型foo,它只有一个名为的函数bar而没有其他属性。但是在该fooObj.bar方法中,我可以访问this.baz(其中baz不是 type 的属性foo)我看不到任何错误。不应该打字稿错误,因为fooObj它没有baz吗?

type foo = {
    bar(): void;
}
var fooObj: foo = {
    bar: () => {
        // TS does not error out when I access this.baz
        console.log(this.baz);
    }
} 
Run Code Online (Sandbox Code Playgroud)

javascript this object-literal typescript

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