Basic concept
Values can be
PRoperties: primitives or other objects
methods: functions
User-defined native objects are mutable at any time.
Object literal notation is ideal for this type of on-demand object creation.
Even the simplest {} object already has properties and methods inherited from Object.prototype.
var dog = { name: "Benji", getName: function () { return this.name; }};
• Wrap the object in curly braces ({ and }).
• Comma-delimit the properties and methods inside the object. A trailing comma after the last name-value pair is allowed but produces errors in IE, so don't use it.
• Separate property names and property values with a colon.
• When you assign the object to a variable, don't forget the semicolon after the closing }.
// one way -- using a literalvar car = {goes: "far"};// another way -- using a built-in constructor// warning: this is an antipatternvar car = new Object();car.goes = "far";
Don't use new Object(); use the simpler and reliable object literal instead.
// Warning: antipatterns ahead// an empty objectvar o = new Object();console.log(o.constructor === Object); // true// a number objectvar o = new Object(1);console.log(o.constructor === Number); // trueconsole.log(o.toFixed(2)); // "1.00"// a string objectvar o = new Object("I am a string");console.log(o.constructor === String); // true// normal objects don't have a substring()// method but string objects doconsole.log(typeof o.substring); // "function"// a boolean objectvar o = new Object(true);console.log(o.constructor === Boolean); // true
新闻热点
疑难解答