Whyvar obj = {}
Cannot use this.xxx
to declare attributes in the method of creating an object?
like:
var person = {
this.name = '背锅侠';
}
will report an error. After looking at its constructor, it is also Object
. Why would this happen? In addition, I would like to ask what is the difference between .json
and an object?
This points to an uncertain future caller, which is related to the scope. Whoever calls the function, this inside the function points to whom.
The above uses the new keyword to call the Person() function, and passes in a string 'sarah' as the value of name. At this time, the point of this inside the function is p1. In the same way, the other one points to p2. If the Person('sarah') method is called directly, since the scope of Person() is the global scope, then the internal this will point to the window.
In other words, this is a substitute, pointing to objects that may be involved in the future. It is uncertain. The internally defined attribute points will also change accordingly.
But like the object literal form used by the subject, the pointing of the attribute name is certain, it belongs to the person. The person object defined by the subject is equal to my p1 here.
In addition, as mentioned above, json is a data format. Facilitates data transfer between front and backends.
I don’t know if I made it clear. . . Newbie answers.
Isn’t this how object literals create objects?
The part on the right is obviously in JSON format and only accepts Key-Value form
The difference between JSON and objects
Give me an example
var obj ={ "you" : "a good boy" }
The part on the right is the JSON you mentioned
It is the same whether it is written in .json or .js
In fact, it is a data format that looks like this sub
As for objects, everything is an object. Object is a relatively abstract term
The constructors are all .json? Yes, they are all the same data format
The first question you have to ask
Brendan Eich
.Ask him why
JavaScript
was designed like this in the first place.As for the second question,
JSON
is a data format , and objects... let’s assume you are talking about JavaScript. Objects are a data type of JavaScript.