Javascript 如何为原型使用对象创建?
我正在尝试让Object.createString.prototype正常工作。但是,出于某种原因,它从来都不起作用 我所拥有的 设s=Object.createString.prototype; s、 一=函数{console.logI'm working}; s、 二=函数{console.logI我也在工作}; a='String' a、 一个//假设我在工作 a、 两//假设记录我也在工作Object.create创建一个空对象,它的原型是给定的对象-String.prototype。因此,当您向Object.create的返回结果中添加内容时,它将添加到空对象本身,而不是String.prototype。a与s对象没有关系 第二种情况是直接将函数添加到String.prototype中 您可以看到s对象的内容 设s=Object.createString.prototype; s、 一=函数{console.logI'm working}; s、 二=函数{console.logI我也在工作}; 控制台日志; 但是,出于某种原因,它从来都不起作用 您向s添加了两个属性,但a没有继承这些属性,因为您没有使用Object.create 替换Javascript 如何为原型使用对象创建?,javascript,Javascript,我正在尝试让Object.createString.prototype正常工作。但是,出于某种原因,它从来都不起作用 我所拥有的 设s=Object.createString.prototype; s、 一=函数{console.logI'm working}; s、 二=函数{console.logI我也在工作}; a='String' a、 一个//假设我在工作 a、 两//假设记录我也在工作Object.create创建一个空对象,它的原型是给定的对象-String.prototype。
a = 'String'
与
设s=Object.createString.prototype;
s、 一=函数{console.logI'm working};
s、 二=函数{console.logI我也在工作};
a=对象。创建;
a、 一个//假设我在工作
a、 两个//我也在工作
因此,您似乎正在尝试创建一个对象,该对象具有一些名为“一”和“二”的特定行为。该对象还将具有字符串原型的方法。问题是,按照您构建的方式,无法将原语值指定给s。Object.create接受第二个参数,但该参数用于设置所创建对象的特定属性,而不是其基本值,这是不可能的
a与s无关。你为什么会这么想
如果要扩展字符串原型,请执行以下操作:
String.prototype.one=函数{console.logI'm working;};
“随便什么”,一个;为正确的控制台日志更新只是一个对象,它不以任何方式连接到字符串。它如何知道a与s有任何关系?这可能会有所帮助:我认为Object.defineProperties是我要寻找的…但它一直在抛出一个错误console@AllenMarshall使用大写字母OIt表示whatever.one不是函数caught类型错误:whatever.one不是函数窗onload@AllenMarshallObject.definePropertiesString.prototype,{one:{value:function{return I'm working}},two:{value:function{return I'm working too}};console.logwhere.one;
a = Object.create(s);
let s = Object.create(String.prototype);
s.one = function () {console.log("I'm working")};
s.two = function () {console.log("I'm working too")};
a = 'String'
a.one()//Suppose to log I'm working
a.two()//Suppose to log I'm working too