有没有一种方法可以为文字对象创建通用函数?

时间:2019-03-28 15:28:45

标签: javascript

我想创建一个可供每个文字对象使用的函数,并使用caller参数引用this

类似的东西:

const literalObject = { 
    "value" : "string"
}

const genricFunction = () =>{
    console.log("value : ",this.value)
}

literalObject.genricFunction()

4 个答案:

答案 0 :(得分:1)

您可以执行以下操作

function obj() {
    this.value = 'string'
}

obj.prototype.getValue = function() {
   return this.value
}

let myObj = new obj()
myObj.getValue(); // 'string' 

答案 1 :(得分:0)

您可以执行以下操作:

const obj ={genricFunction:function(){console.log("value : ",this.value)}}

然后创建每个这样的对象:

const newObj = Object.create(obj)
newObj.value=“string”

答案 2 :(得分:0)

您可以将通用功能分配给Object.prototype。这是您更新的代码。

const literalObject = { 
    "value" : "string"
}

const genericFunction = function() {
    console.log("value : ",this.value)
}

Object.prototype.genericFunction = genericFunction

literalObject.genricFunction()

尽管这行得通,但这被认为是不好的做法。您想要这个用例是什么,也许我们可以建议您一种更好的方法。

答案 3 :(得分:-1)

您可以创建literalObjectgenericFunction

const literalObject = { 
    "value" : "string"
}

const genricFunction = function () {
    console.log("value : ",this.value)
}

,然后将属性literalObject绑定到genericFunction

literalObject.genericFunction = genricFunction.bind(literalObject);

以及您每次致电

literalObject.genricFunction();

它将使用literalObject作为this

    const literalObject = { 
        "value" : "string"
    }
    
    const genricFunction = function () {
        document.write(JSON.stringify(this.value));
    }
    
    literalObject.genricFunction = genricFunction.bind(literalObject);
    
    literalObject.genricFunction();