Backbone View Inheritance

前端 未结 4 1968
猫巷女王i
猫巷女王i 2021-01-12 20:33

I am trying to write a Backbone view for an object browser which is designed to be implemented in several places with different object types and slightly different operation

4条回答
  •  耶瑟儿~
    2021-01-12 21:12

    It's hard to see what exactly your goal is.

    but this is how i see it if you have an view object

    var myView = Backbone.View.extend({
        foo: "bar"
    });
    

    and you have it extend the backbone.View... then you actually have a new view object with everything of backbone.view, and the extra options you give as parameters.

    if you then go and create a second view, that extends your first one it will get everything from your first view, + it's own extras

    var mySecondView = myView.extend({
        foobar: "f00b@r"
    });
    

    if you would create an instance of the second view and log it's foo property it will still hold "bar" as value

    var mySecondViewInstance = new mySecondView();
    console.log("mySecondViewInstance.foo: ", mySecondViewInstance.foo);
    console.log("mySecondViewInstance.foobar: ", mySecondViewInstance.foobar);
    

    if i create a new instance of my first view, and change foo into "changed-foo" the log of foo on mySecondViewInstance will still be "bar"

    var myViewInstance = new myView();
    myViewInstance.foo = "changed-foo";
    console.log("mySecondViewInstance.foo: ", mySecondViewInstance.foo);
    console.log("mySecondViewInstance.foobar: ", mySecondViewInstance.foobar);
    

    a JS-Fiddle to play around with it can be found here: http://jsfiddle.net/saelfaer/uNBSW/

提交回复
热议问题