Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为原型使用对象创建?_Javascript - Fatal编程技术网

Javascript 如何为原型使用对象创建?

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。

我正在尝试让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

替换

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