我想创建一个可供每个文字对象使用的函数,并使用caller
参数引用this
。
类似的东西:
const literalObject = {
"value" : "string"
}
const genricFunction = () =>{
console.log("value : ",this.value)
}
literalObject.genricFunction()
答案 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)
您可以创建literalObject
和genericFunction
:
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();