Share via

WinJS.Namespace.defineWithParent function

Defines a new namespace with the specified name under the specified parent namespace. For more information, see Organizing your code with WinJS.Namespace.


var object = WinJS.Namespace.defineWithParent(parentNamespace, name, members);


  • parentNamespace
    Type: object

    The parent namespace.

  • name
    Type: string

    The name of the new namespace.

  • members
    Type: object

    The members of the new namespace.

Return value

Type: Object

The newly-defined namespace.


If the name contains '.' it is split into parts that are taken to represent a hierarchy. The name following the last '.' will be the leaf namespace node to which the members will be added. Any namespace nodes along the path will be created as needed.

Namespaces should contain only classes, functions, constants, and other namespaces.


The following code shows how to use this function to define two namespaces: a Robotics namespace with a single Robot class; and a Robotics.Search namespace with a single member findRobot.

(function () {
    "use strict";

    var Robot = WinJS.Class.define(function (name) { = name;

    function getAllRobots() {
        return allRobots;

    WinJS.Namespace.define("Robotics", {
        Robot: Robot

    var allRobots = [
        new Robot("mike"),
        new Robot("ellen")

    function findRobot(robotName) {
        for (var i in allRobots) {
            if (allRobots[i].name == robotName) {
                return allRobots[i];

    WinJS.Namespace.defineWithParent(Robotics, "Search",
            findRobot: findRobot


Minimum WinJS version

WinJS 1.0