如何在JavaScript中创建新对象?

Fat*_*ark 6 javascript

为什么这不起作用?

    var sheep = function(options){
        this.options = {sizes: 100,
                        eat: 100,
                 colors: 'white', 
                 running: function () {
                     return this.sizes + this.eat;
                 }
          }
    };

    var blacksheep = new sheep({colors:'black'});       

    alert('blackcsheep color is ' + blacksheep.colors);//error undefined
    alert('blackcsheep color is ' + blacksheep.options.colors);// it return white
    alert('blackcsheep running is ' + blacksheep.running());//error
Run Code Online (Sandbox Code Playgroud)

arm*_*oon 3

语法:

var sheep = {sizes:100, eat:100, colors:'white',running:function(){
        return this.sizes+this.eat;
        }
    };
Run Code Online (Sandbox Code Playgroud)

是一个对象字面量。它定义了对象的实例,但不定义定义它的类。因此,无法“新建”该对象的另一个实例。

看一下 jQuery 的extend功能:

var blacksheep = {
}

$.extend(blacksheep, sheep, { color: black });
Run Code Online (Sandbox Code Playgroud)

sheep这将复制into的所有属性blacksheep,然后将第三个参数合并到 中blacksheep,有效地实现您想要的。