Javascript 无法通过prototype属性在js对象中添加方法
下面是我在javascript对象中添加方法的代码。我找了很多,但都没找到。怎么了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
<!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();