extend
Define a custom list type.
DefineList.extend([name,] [static,] prototype)
Extends DefineList, or constructor functions derived from DefineList, to create a new constructor function.
import DefineList from "can-define/list/list";
const TodoList = DefineList.extend(
"TodoList",
{
"#": { type: { complete: "boolean", name: "string" } },
availableCount: "number",
completedCount: {
get: function() {
return this.filter( { complete: true } ).length;
}
},
completeAll: function() {
this.forEach( function( todo ) {
todo.complete = true;
} );
}
} );
const todos = new TodoList( [
{ name: "dishes", complete: false },
{ name: "lawn", complete: false }
] );
todos.availableCount = 100;
todos.completeAll();
todos.completeCount; //-> 2
Parameters
- name
{String}
:Provides an optional name for this type that will show up nicely in debuggers.
- static
{Object}
:Static properties that are set directly on the constructor function.
- prototype
{Object<String,function|PropDefinition>}
:A definition of the properties or methods on this type.