0

这是我在 javascript 对象中添加方法的代码。我搜索了很多,但对我没有任何帮助。怎么了??

<!DOCTYPE html>
<html>
<body>

<script>

var person = new Object();

person.prototype.display=function(){

alert("ok");

}

person.display();

</script>
</body>


</html>
4

3 回答 3

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();
于 2013-08-28T15:27:44.273 回答
0

尝试这个:

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

已编辑以修复语法错误。

于 2013-08-28T15:29:27.843 回答
0

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

我认为这是一个很好的介绍 - http://alexsexton.com/blog/2013/04/understanding-javascript-inheritance/

于 2013-08-28T15:30:16.550 回答