这是我在javascript对象中添加方法的代码。我搜索了很多,但没有任何对我有用。怎么了?
<!DOCTYPE html>
<html>
<body>
<script>
var person = new Object();
person.prototype.display=function(){
alert("ok");
}
person.display();
</script>
</body>
</html>
答案 0 :(得分:0)
您无法将属性添加到 undefined 。
var foo = new Object();
foo.prototype; // undefined
Object.getPrototypeOf(foo); // prototype of all objects
要使用自己的原型创建对象,请使用Object.create
var proto = {},
foo = Object.create(proto);
foo.prototype; // still undefined
Object.getPrototypeOf(foo) === proto; // true
或者,将new
与虚拟功能
var Obj = function () {},
proto = Obj.prototype = {};
var foo = new Obj;
foo.prototype; // again still undefined
Object.getPrototypeOf(foo) === proto; // true
从最后两个获得原型后,您可以正常使用
proto.display = function () {console.log('display');};
foo.display();
答案 1 :(得分:0)
试试这个:
function person() {}
person.prototype.display = function(){ alert("ok"); }
var p = new person();
p.display();
已编辑以修复语法错误。
答案 2 :(得分:0)
如果你试图在javascript中实现原型继承,那么'person'需要是一个函数,而不是一个对象。
我认为这是一个很好的介绍 - http://alexsexton.com/blog/2013/04/understanding-javascript-inheritance/。