Javascript 从其他对象创建新对象

Javascript 从其他对象创建新对象,javascript,javascript-objects,Javascript,Javascript Objects,在javascript中创建对象的第一种方法是让我从中创建新对象。创建对象的第二和第三种方法是抛出错误 有人能告诉我为什么会这样吗。让我知道我在代码中犯了什么错误 'use strict' // First Way for creating object var log = function(){ this.name = 'nitesh', this.lastName = 'Yadav', this.age = '21' } Object.definePropert

在javascript中创建对象的第一种方法是让我从中创建新对象。创建对象的第二和第三种方法是抛出错误 有人能告诉我为什么会这样吗。让我知道我在代码中犯了什么错误

'use strict'

// First Way for creating object
var log = function(){
    this.name = 'nitesh',
    this.lastName =  'Yadav',
    this.age =  '21'
}
Object.defineProperty(log,'name',{
    enumerable: false,
    writable: false,
    configurable: false
})
var for = new log(); ***// Works fine*** 
console.log(foo.name); // nitesh

// Second Way for creating object

var log2 = {
    name: 'nitesh',
    lastname: 'yadav',
    age: '21'
}
var foo2 = new log2; ***//Not working***
console.log(foo2.name) // Result error Why???

// third Way for creating object

var log3 = Object.create(Object.prototype,{
    name:{
        value: 'nitesh',
        enumerable: true,
        writable: true,
        configurable: true
    },
    age: {
        value: '21',
        enumerable: true,
        writable: true,
        configurable: true
    }
})

var foo3 = new log3; ***//Not working***
console.log(foo3.name) // Result error Why???

第一种情况是创建“类”,然后您可以创建任意数量的对象

在第二种和第三种情况下,您正在创建对象本身,并且您无法从对象创建对象。您可以在创建以下内容后立即使用它们:

// Second Way for creating object

var log2 = {
    name: 'nitesh',
    lastname: 'yadav',
    age: '21'
}
// var foo2 = new log2; // This line is not needed 
console.log(log2.name) // No Error

// third Way for creating object

var log3 = Object.create(Object.prototype,{
    name:{
        value: 'nitesh',
        enumerable: true,
        writable: true,
        configurable: true
    },
    age: {
        value: '21',
        enumerable: true,
        writable: true,
        configurable: true
    }
})

//var foo3 = new log3; // This line is not needed 
console.log(foo3.log3) // No Error

var for=新日志();将引发异常,因为的
是保留字,不能将其用作变量名
对象。创建
-创建新对象,而不是类。您不能调用
newlog3
,因为它不是类(也不是构造函数),命名都应该重做。从那开始!var foo2=新的log2//不工作,因为log2是一个对象实例,而不是它的构造函数。