Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 无法通过prototype属性在js对象中添加方法_Javascript_Prototype - Fatal编程技术网

Javascript 无法通过prototype属性在js对象中添加方法

Javascript 无法通过prototype属性在js对象中添加方法,javascript,prototype,Javascript,Prototype,下面是我在javascript对象中添加方法的代码。我找了很多,但都没找到。怎么了 <!DOCTYPE html> <html> <body> <script> var person = new Object(); person.prototype.display=function(){ alert("ok"); } person.display(); </script> </body> </html

下面是我在javascript对象中添加方法的代码。我找了很多,但都没找到。怎么了

<!DOCTYPE html>
<html>
<body>

<script>

var person = new Object();

person.prototype.display=function(){

alert("ok");

}

person.display();

</script>
</body>


</html>

var person=新对象();
person.prototype.display=function(){
警报(“正常”);
}
person.display();

不能将属性添加到“未定义”

要使用自己的原型创建对象,请使用
Object.create

var proto = {},
    foo = Object.create(proto);
foo.prototype; // still undefined
Object.getPrototypeOf(foo) === proto; // true
或者,使用带有虚拟函数的
new

一旦你有了最后两个原型,你就可以正常使用了

proto.display = function () {console.log('display');};
foo.display();
试试这个:

function person() {}
person.prototype.display = function(){ alert("ok"); } 
var p = new person();
p.display();

编辑以修复语法错误。

如果您试图在javascript中实现原型继承,“person”需要是一个函数,而不是一个对象


这是一个很好的介绍-。

这里有问题吗?如果只想将其添加到一个对象,你不必使用原型。我知道Bergi还有其他的方法,但我也想用它来做。有什么想法吗?你能帮我举个例子吗?我对javascript很陌生,我觉得我迷路了。从我的答案中选择代码块
2
3
,然后将
foo
重命名为
person
,然后复制代码块
4
并将函数更改为所需的操作。这确实有效。但为什么没有构造函数它就不能…?
function person(){}
创建一个一级对象,而
新建对象()没有。只能从第一类对象访问原型的属性。这个解释更详细:非常感谢..上面的代码工作得很好..有一个构造函数,然后一切都设置好。。自定义对象和根对象之间的区别是什么?代码“var foo=new object()”与“var foo={}”基本相同。这两个都没有原型属性,如果这更有意义的话?谢谢。那一个很好。。
proto.display = function () {console.log('display');};
foo.display();
function person() {}
person.prototype.display = function(){ alert("ok"); } 
var p = new person();
p.display();