【问题标题】:Share javascript properties [duplicate]共享javascript属性[重复]
【发布时间】:2015-11-18 12:29:34
【问题描述】:

我做了一个简单的对象

var myObject = {
formname: $('form'),
input: this.formname.find('input'),

init: function() {
    console.log(myObject.input)
}

}

myObject.init();

http://jsfiddle.net/t3fjffLg/

但这不起作用。我想在 name2 属性中使用我的 name 属性。 共享属性的最佳方法是什么? 我必须改用原型吗?

【问题讨论】:

    标签: javascript properties share


    【解决方案1】:
    var myObject = {
        name: 'Johan',
        name2: function(){return this.name},
    
        init: function() {
            console.log(this.name2())
        }
    }
    

    【讨论】:

    • 拥有一个功能,只是为了共享一个价值,似乎有点矫枉过正。
    • @Johansrk 我可能是错的,但这似乎是实现您所要求的最简单的方法。另一种方法是 Hatem 在初始化时设置属性时提到的。你到底想达到什么目的? As name: "Johan", name2: this.name 即使它工作起来也似乎是非常无用的代码。
    • 如果 fx 共享一个选择器就好了。查看我编辑的代码
    • @Johansrk 是的,我仍然会简单地包装一个函数并返回。这将允许您根据需要返回选择器。我不认为这是一个矫枉过正的选择,因为替代方案更加混乱。
    【解决方案2】:

    您的目标是用相同的“name”值初始化“name2”。所以,最好的办法是把它放在“init”方法中:

    var myObject = {
        name: 'Johan',
        name2: null,
    
        init: function() {
            this.name2 = this.name
            console.log(myObject.name2)
        }
    }
    
    myObject.init();
    

    或者,如果您坚持在标题中分配属性的值。然后你必须遵循这种方法:

    name2: function(){ return this.name }
    

    【讨论】:

    • 这只是一个例子。我想问题是,如何在对象之间共享属性?
    猜你喜欢
    • 2015-11-21
    • 2013-03-05
    • 2018-07-03
    • 2015-03-29
    • 2017-03-31
    • 2011-02-22
    • 2013-11-18
    • 2017-10-08
    • 1970-01-01
    相关资源
    最近更新 更多