javascript在初始化期间自行引用函数变量的正确方法

时间:2015-05-27 19:09:52

标签: javascript variables initialization self-reference

以下工作并做我需要的。但是,有没有更好的方法来引用“c:”中的“a”和“b”?

<html>
<head>
    <script type="text/javascript">
        var bar;

        function Foo() {}
        Foo.prototype = {
            a: 1,
            b: 2,
            c: function() {
                return Foo.prototype.a + Foo.prototype.b;
            }
        }

        bar = new Foo();

        console.log('c is: ' + bar.c());
    </script>
</head>
<body>
    <button onclick="document.write('c is: ' + bar.c())">Try it</button>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

c: function() {
  return this.a + this.b;
}

答案 1 :(得分:0)

当您创建Foo的新对象时,构造函数中的属性和通过原型添加的属性可以在具有this字的对象上下文范围中进行访问。

(function() {
    var bar;

    function Foo() {
        //Constructor function properties and methods
    }

    //Protoytpe methods and properties
    Foo.prototype = {
        a: 1,
        b: 2,
        c: function() {
            return this.a + this.b;
        }
    }

    bar = new Foo();
    console.log('c is: ' + bar.c());

})();  

Jsfiddle

有关原型如何工作的更多信息,请查看以下内容: How does JavaScript .prototype work?